Hi @all...
habe da nen kleines Problem und finde den Fehler nicht ....
zunächst zum codeschnipzel...
Delphi-Quellcode:
prozedure tralalala();
var btn : TSpeedButton;
begin
...
for i:=0 to 10 do
begin
btn := TSpeedButton.Create(self);
btn.Parent := vle_Zauber; {vl_zauber == TValueList}
vle_Zauber.InsertComponent(btn);
end;
...
end;
Nun will ich alle Komponenten die als Parent vle_Zauber besitzen löschen.....
procedure Tfrm_CharZauber.UnloadCreatedButtons;
var i : Integer;
begin
begin
for i:=0 to ComponentCount -1 do
if (Components[i].ClassType = TSpeedButton) and ((Components[i] as TSpeedButton).Parent = vle_Zauber) then
begin
vle_zauber.RemoveComponent(Components[i]);
(Components[i] as TSpeedButton).Free;
end;
end;
end;
Klappt auch ohne Fehler .... nur wenn ich mit dem Programm normal weiter arbeite kommt nach einiger zeit die
Exeption : EAccessViolation at address ...
Sicher ist das ich auf die gelöschten Komponenten zu keiner zeit zugreife. Daran liegt es nicht.
Hat jemand ne Idee ??
MfG Andy