Weißt Du eigentlich, was Du da tust bzw. liest Du, was wir schreiben? Wieviele Instanzen von MySchlange willst Du denn anlegen, die Du nie wieder freigeben kannst? Außerdem schau Dir mein Edit in
#54 noch einmal an.
[edit] Wenn wir die Reihenfolge der Typdeklarationen etwas ändern, kann die Schlange auch ein Feld des Formulars werden:
Delphi-Quellcode:
type
Tperson = record
Name:string;
id:integer;
end;
Tschlange = class
private
next,max:integer;
schlange : array [1..10] of tperson;
public
function einfuegen(x:tperson):boolean;
constructor create;
end;
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
(* FSchlange gehört jetzt dem Formular und ist auch nur von dem zu erreichen *)
FSchlange: TSchlange;
public
{ Public declarations }
end;
//...
procedure TForm1.FormCreate(Sender: TObject);
begin
(* Instanz anlegen *)
FSchlange := TSchlange.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
(* Instanz freigeben*)
FSchlange.Free;
end;
Wie schon erwähnt, bis auf die Formularvariable können alle globalen Variablen entfallen. Nur als Denkanstoß. [/edit]