Hallo
Ich habe mir diese Klasse angelegt:
Delphi-Quellcode:
CStunde = class(Tobject)
public
Panel: TPanel;
list: array[1..4] of TLabel;
procedure Create(t,l,h,w: integer; form: TForm);
end;
(Hat noch keine Lösch-Methode, aber das Problem gehe ich später an. )
Delphi-Quellcode:
Procedure CStunde.create(t,l,h,w: integer; Form: TForm);
var
i: byte;
begin
Panel := TPanel.Create(nil);
with Panel do
begin
Parent:= Form;
Top:= t;
...
color:=clred;
end;
for i:=1 to 4 do
begin
list[i]:= TLabel.create(nil);
list[i].Parent:= Panel;
list[i].left:= 10;
end;
end;
Wenn ich das Create mit
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
sp: CStunde;
begin
sp.Create(50,50,200,250,Form1);
end;
aufrufe wird das Panel mit den Labels schön angezeigt, wenn ich das Formular schließe bekomme ich eine
AV, was wahrscheinlich am fehlenden destroy oder free liegt, aber dass ist nicht mein primäres Problem.
Wenn ich es aber als
Delphi-Quellcode:
var
Form1: TForm;
sp: CStunde;
global anlege bekomme ich beim create dann eine
AV.
Weiss jemand, warum dass so ist und wie ich es trotzdem global anlegen kann?
Nikolas
Erwarte das Beste und bereite dich auf das Schlimmste vor.