jetzt ist es mir langsam peinlich

Ich schreibe mir gerade eine kleine Unit, bei der mir auch schon mehr als geholfen wurde.
Die unit soll folgende Aufgaben übernehmen. Da mir ein Showmessage oder auch ein MessageDlg häufig nicht ausreicht um Informationen darzustellen, und sei es auch nur bei der Entwicklung, wollte ich mir eine kleine Unit schreiben-.
Die Übergabeparameter werden teilweise optional sein.
hier nun zu meinem Problem (Ich poste auch 2 Codestellen, die 1. funktioniert, ist aber wenig praktikabel, die 2. schmiert mir ab mit:
- Dieses funtioniert
Code: Alles auswählen
function ShowInfoGrid(cAusgabe: TStringStringArray; coParButton: Array of TMeinTest; stPar: Array of String ):integer overload;
var
myStringgrid1: TStringgrid;
myForm, ParentForm : TForm;
myButton1, myButton2, myButton3 : TBitBtn;
begin
myForm := TForm.Create(Screen.ActiveForm) ;
myStringgrid1 := TStringGrid.Create(myForm);
myStringgrid1.Parent := myForm;
myButton1 := TBitBtn.Create(myForm);
myButton2 := TBitBtn.Create(myForm);
myButton3 := TBitBtn.Create(myForm);
myButton1.Parent := myForm;
myButton2.Parent := myForm;
myButton3.Parent := myForm;
...
try
myForm.ShowModal;
finally
myStringgrid1.Free;
myButton1.free;
myButton2.free;
myButton3.free;
myForm.free;
end;
end;
- Hier bekomme ich den besagten Fehler
Code: Alles auswählen
function ShowInfoGrid(cAusgabe: TStringStringArray; coParButton: Array of TMeinTest; stPar: Array of String ):integer overload;
var
myStringgrid1: TStringgrid;
myForm, ParentForm : TForm;
myButtons : Array of TBitBtn;
begin
myForm := TForm.Create(Screen.ActiveForm) ;
myStringgrid1 := TStringGrid.Create(myForm);
myStringgrid1.Parent := myForm;
for i := 0 to High(coParButton) do
Begin
myButtons[i] :=TBitBtn.Create(myForm);
with myButtons[i] do
begin
Parent := myForm;
...
end;
end;
...
try
myForm.ShowModal;
finally
myStringgrid1.Free;
for i := High(myButtons) downto 0 do
myButtons[i].free;
//********************************* Ab hier beim Aufruf von myForm.Free heht nichts mehr ***********************
myForm.free;
end;
end;
myButtons :=TBitBtn.Create()
wobei
myButtons[0] :=TBitBtn.Create() zu liegen,
myButtons[1] :=TBitBtn.Create() zu liegen,
auch nicht funktioniert.
Vielleicht weiß ja einer von euch Informatikern weiter

Mit freundlichem Gruß
Ralph