Avatar billede madshenrik Nybegynder
08. februar 2001 - 22:19 Der er 7 kommentarer og
1 løsning

Oncreate problem

Jeg har denne procedure som egentlig virker fint.
procedure udfyldComboFag;
var
i: integer;
r: integer;
begin
r := 1;

  with hovedform do
  begin
      while r < ComboBoxfag.Items.Count do
      begin
      ComboBoxfag.Items.Delete(r);
      r := r + 1;
      end;
  end;

i := 0;
  while i < NotatdataModul.FagTabel.RecordCount do
  begin
    with notatdatamodul do
    begin
    FagQuery.SQL.Clear;
    FagQuery.sql.add(\'select Fag\');
    FagQuery.sql.add(\'from Fag\');
    FagQuery.sql.add(\'where Nummer = :IDENT\');
    FagQuery.ParamByName(\'IDENT\').ASINTEGER := i;
    FagQuery.open;
    if FagQuery.recordcount > 0 then
        hovedform.ComboBoxfag.Items.Add(FagQuery.fields[0].value);
    end;
  i := i + 1;
  end;

end;

Jeg har haft den til at kører. Men når jeg kalder den i min Oncreate på min hovedform. Så virker det sku ikke. Den laver en EAccessViolation på en adresse. Hvilket jeg ikke forstår en skid af. Umiddelbart mener compileren det er i denne linie den er gal.
while i < NotatdataModul.FagTabel.RecordCount do
Er der nogen der kan forklare dette Fagtabel er aktiv.

Mads
Avatar billede torbenthyregod Nybegynder
08. februar 2001 - 22:25 #1
Prøv at se i menuen under project|options
Der er en af fanebladende hvor du kan bestemme hvilken rækkefølge de enkelte units bliver udført i. Din \"NotatDataModul\" skal ligge over din hovedform.

(Jeg har ikke lige delphi ved mig lige nu, så jeg kan ikke lige beskrive det i detaljer)

Torben
Avatar billede madshenrik Nybegynder
08. februar 2001 - 22:36 #2
Det var åbentbart det der var galt. Tak for hjælpen.

Mads
Avatar billede torbenthyregod Nybegynder
08. februar 2001 - 22:36 #3
Så skal man vel huske og svare
Avatar billede torbenthyregod Nybegynder
08. februar 2001 - 22:37 #4
Takker, og det var så lidt.
Avatar billede xs2k Nybegynder
08. februar 2001 - 22:38 #5
Torben har ret, NotatDataModul bliver først createt efter at main formens oncreate event er udført, men hvis du flytter NotatDataModul op så det bliver createt før din main form. Dette kan ikke lade sig gøre da den form du vil bruge som main skal creates først.

En mulig løsning kunne være at sætte den ind i din OnShow event for main formen, så skal du dog huske at hvis din main form på noget tidspunkt bliver gemt (visible = false) or derefter vist igen, så vil denne event blive udført igen, dette kan undgås ved at have en boolean værdi (FirstShow), som i OnCreate bliver sat til true.

koden i OnShow kunne så være:

if FirstShow then
begin
  udfyldComboFag;
  FirstShow:=False;
end;
Avatar billede torbenthyregod Nybegynder
08. februar 2001 - 22:41 #6
Datamodul bliver da ikke opfattet som en form, så derfor kan du da godt gøre det. (Hvis jeg husker ret)
Avatar billede xs2k Nybegynder
08. februar 2001 - 22:53 #7
jeg troede notatdatamodul var en form, har aldrig brugt et datamodul, og kendte derfor ikke til det, men du har ret man kan bare flytte det op over mainformen som du sagde og så skulle det virke.
Avatar billede madshenrik Nybegynder
09. februar 2001 - 17:00 #8
Det virker også som det skal.

Mads
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester