Hi,
leider hilft mir das nicht weiter, ich verwende meistens sowieso FreeAndNil !!!
Ich hab jetzt auch schonmal testweise, meine PageControl(modifizierte KOmponente) gegen ein STandard-Page-Control ausgetauscht, aber der gleiche Effekt.
ich habe ne Procedure oder einen Event(z.B. Button Click), innerhalb dieser Procedure rufe ich folgende auf :
Code:
procedure TfraChatWindow.FreeFromTab;
Var Data : TChatWindowData;
Idx : Longint;
RemoveTab : TTabSheet;
begin
idx := ChatWindows.IndexOfFrame(self);
if idx > -1 then begin
Data := ChatWindows.Items[Idx];
if Data <> Nil then begin
Data.FreeInProgress := true;
ChatWindows[idx] := Nil;
Data.Frame.free;
(*
if (Data.Tab.PageIndex < (Data.Tab.PageControl.PageCount -1)) then
Data.Tab.PageControl.ActivePageIndex := Data.Tab.PageIndex + 1
else
Data.Tab.PageControl.ActivePageIndex := Data.Tab.PageIndex -1;
*)
DAta.Tab.TabVisible := false; // egal, ob diese ZEile aktiviert ist oder nicht
RemoveTab := Data.Tab;
FreeAndNil(RemoveTab);
FreeAndNil(Data);
//ChatWindows.Pack;
end;
end;
end;
Wenn ich am Ende der Procedure angekommen bin, und dann F7 drücke springt er zu dem letzten End meine Action.OnExecute und bei erneutem F7 gibt es meine Schutzverletzung, aber leider keinen Hinweis wo
Im CPU Fenster stellen nur lauter ???? Es handelt sich bei der
Exception um eine EAcessViolation, aber mit ner gültigen Zeiger-Adresse nicht 00000000000000000.
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.