Hallo zer00,
wenn du statt einer
TList eine
TObjectList aus der
Unit Contnrs verwendest, übernimmt diese die Freigabe der enthaltenen Elemente. Vielleicht wäre es noch besser, in der
Unit 'Termin' eine abgeleitete Klasse zu definieren:
Delphi-Quellcode:
// uses Contnrs;
type
TTerminListe = class (TObjectList)
private
function GetTermin (aIndex: Integer): TTermin;
public
function NeuerTermin (const aName, aNr: string): TTermin;
property Termin [aIndex: Integer]: TTermin
read GetTermin; Default;
end;
function TTerminListe.GetTermin (aIndex: Integer): TTermin;
begin
Result := TTermin(Items[aIndex]);
end;
function TTerminListe.NeuerTermin (const aName, aNr: string): TTermin;
begin
Result := TTermin.Create(aName, aNr);
Add(Result);
end;
Wenn du dieser Klasse weitere Methoden spendierst (z.B. LoescheTermin), dann kannst du die gesamte Verwaltung der Termine dort kapseln.
Die Verwendung in deinem Programm könnte etwas so aussehen:
Delphi-Quellcode:
var Liste : TTerminListe;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text := Liste[index].Name;
Edit2.Text := Liste[index].nr;
end;
Noch eine Bemerkung zu den Prozeduren 'Button4Click' und 'Button5Click': du weißt hoffentlich, daß immer nur
eine Anweisung von einem IF abhängt. Wenn alle drei Anweisungen nur im True-Fall ausgeführt werden sollen, dann mußt du sie mit BEGIN..END klammern:
Delphi-Quellcode:
if(
index > 0)
then
begin
dec(
index);
Label2.Caption:= IntToStr(
index);
Self.Button2.Click;
end;
Du solltest den Controls auf deinem Formular übrigens aussagekräftigere Namen geben, dann muß man nicht raten, was die einzelnen Routinen bewirken.
Gruß Hawkeye