Hallo,
ich arbeite an einem Programm, in dem ich dynamisch mehrere Labels zum Anzeigen von Daten und 2 Buttons zum Editieren und Löschen erstellen kann. Es gehören immer 2 Buttons und 6 Labels zusammen (ich weiß, nen StringGrid könnte sinnvoller sein, aber darum gehts derzeit noch nicht).
Alles wird durch ein Array verwaltet, soweit kein Problem.
Das eigentliche Problem liegt beim Löschen des Datensatzes: Ich klicke auf den 'Löschen' Button des jeweiligen Datensatzes und die zugehörigen 6 Labels und beide Buttons sollen verschwinden. Dafür verwende ich Free.
In der Delphi-Hilfe steht allerdings, dass ich diese Funktion nicht im OnClick Event des zu löschenden Objektes verwenden soll, genau das wäre aber ja mein Wunsch. --> Ergebnis: EAbstractError!
Delphi-Quellcode:
var L : Array[1..20, 1..6] of TLabel;
B : Array [1..20,1..2] of TButton;
procedure Entfernen(Sender: TObject);
var i: Integer;
begin
Nr := StrToInt(Copy(TButton(Sender).Name,4, 2)); // Nr des Sender-Buttons wird aus dessen Namen ausgelesen
for i := 1 to 6 do
L[Nr, i].Free // Labels 1-6 werden gelöscht
B[Nr, 1].Free // Edit-Button wird gelöscht
B[Nr, 2].Free // Löschen-Button wird gelöscht
end;
Wie kann ich also dieses Problem umgehen?