08. februar 2001 - 22:19Der 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.
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 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;
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.
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.