Есть свой компонент, унаследован от панели,он создается динамически,а при удаление выдает ошибку EAccessViolation вот место удаления
Код:
procedure TForm2.TabClose(Sender: TObject);
var
i,l:integer;
begin
l:=TButton(Sender).Parent.Left;
if (l<>1) then
begin
addPage.Left:=addPage.Left-150; //ñäâèãàåì êíîïêó " íîâàÿ âêëàäêà"
BallPage.Left:=BallPage.Left-150; //ñäâèãàåì êíîïêó " îñòàëüíûå âêëàäêà"
for i:=0 to wbhead.ComponentCount-1 do
begin
if(wbhead.Components[i].Tag<>0) and (TPanel(wbhead.Components[i]).Left>l) then
TPanel(wbhead.Components[i]).left:=TPanel(wbhead.Components[i]).left-150;
end;
end;
// TChromium(activepage.GetBros).Free;
TButton(Sender).Free;
if activepage=TmyTabPanel(Sender).Parent then activepage:=nil;
TmyTabPanel(Sender).Parent.Destroy;//ВОТ ТУТ САМА ОШИБКА free тоже самое выдает
end;
вот код компонента
Код:
unit myTabPanel;
interface
uses
SysUtils, Classes, Controls, ExtCtrls,StdCtrls;
type
TmyTabPanel = class(TPanel)
private
FInd:string;
FAdress:string;
FBrow:TObject;
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create (AOwner:TComponent);override;
destructor Destroy ();override;
//destructor Destroy
published
property Ind:string read FInd write FInd;
property Adress:string read FAdress write FAdress;
procedure SetBrows(obj:TObject);
function GetBros:TObject;
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MyComp', [TmyTabPanel]);
end;
{ TmyTabPanel }
constructor TmyTabPanel.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;
destructor TmyTabPanel.Destroy;
begin
FBrow.Free;
inherited;
end;
function TmyTabPanel.GetBros: TObject;
begin
Result:=FBrow;
end;
procedure TmyTabPanel.SetBrows(obj: TObject);
begin
FBrow:=obj;
end;
end.