I coverted my little demo with your suggestion.
It seems it does not change anything. Still memory leak
heaptrc : 1 unfreed memory blocks
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, attabs;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
AT : TATTabs;
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
AT := TATTabs.Create(Form1);
AT.parent := self;
AT.Align:=alTop;
end;
procedure TForm1.Button1Click(Sender: TObject);
//var
// aTab : TATTabData;
begin
AT.AddTab(-1,Edit1.Text);
//aTab := TATTabData.Create(AT.Tabs);
//aTab.TabCaption:=Edit1.Text;
end;
end.
More information :
1) if Edit.text ='' => no memory leak
2) AT.AddTab(-1,'XXX') => no memory leak