var someLabel: TLabel; begin //hvis jeg allerede nu vil tilgå someLabel får jeg en access violation someLabel.Caption := 'Niks, det må man ikke'; end;
Løsningen er at sørge for at someLabel er oprettet:
var someLabel: TLabel; begin someLabel := TLabel.Create(Self); //someLabel er nu oprette og kan bruges. someLabel.Caption := 'Niks, det må man ikke'; end;
Jeg mistænker at du ved OnCreate for din hovedform, prøver at tilgå din opsætningsform. Men denne er endnu ikke oprettet og du får en access violation fejl.
Hvis alle formene er autokreeret (se skift-ctrl-f11) så er det lige meget hvornår man tilgår dem - de er oprettet. Formens OnCreate bliver ikke kørt før alt er oprettet, men hvis du overstyrer constructoren så kommer den pludselig først.
(Det var dog nogle små indtastningsfelter de har lavet...)
Jeg gætter på at din anden form ikke er autooprettet - hvilket er sådan som man bør gøre det.
Hvis du vil åbne en anden form (modalt) så er det noget lignende dette:
procedure ... var Option1 : boolean; begin frmOpsaetning := TfrmOpsaetning.Create(self); try if frmOpsatning.ShowModal = mrOK then begin // en knap's modalresult er sat til mrOK Option1 := CheckBox1.Checked; finally frmOpsaetning.Free; // alt. brug .Release end;
// Kunne godt være inde i "frmOpsaetning.showmodal"... // men jeg foretrækker at frigive formen med det samme. Det er en smagssag if Option1 then begin // Gør hvad du nu vil her. end;
Synes godt om
Ny brugerNybegynder
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.