ExCtrls: Fix memory leaks

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8135 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2021-10-31 10:42:04 +00:00
parent 87a33ca6b0
commit 352503ff25

View File

@ -29,6 +29,7 @@ type
procedure InsertItem(AIndex: Integer; const AText: string; Obj: TObject); override;
public
destructor Destroy; override;
procedure Assign(ASource: TPersistent); override;
procedure Clear; override;
procedure Delete(AIndex: Integer); override;
@ -59,7 +60,8 @@ type
FOnDropDown: TNotifyEvent;
FOnItemChange: TCheckItemChange;
FOnItemClick: TCheckListClicked;
procedure CloseUpHandler(Sender: TObject);
procedure CheckComboBoxFormCloseHandler(Sender: TObject; var CloseAction: TCloseAction);
// procedure CloseUpHandler(Sender: TObject);
function GetChecked(AIndex: Integer): Boolean;
function GetItemEnabled(AIndex: Integer): Boolean;
function GetItems: TStrings;
@ -193,6 +195,12 @@ end;
{ TCheckComboBoxExStrings }
destructor TCheckComboBoxExStrings.Destroy;
begin
Clear;
inherited;
end;
procedure TCheckComboBoxExStrings.Assign(ASource: TPersistent);
var
i: Integer;
@ -530,6 +538,14 @@ begin
DoChange;
end;
procedure TCheckComboBoxEx.CheckComboBoxFormCloseHandler(Sender: TObject;
var CloseAction: TCloseAction);
begin
CloseUp;
FCheckListBox := nil;
CloseAction := caFree;
end;
procedure TCheckComboBoxEx.Clear;
begin
FItems.Clear;
@ -547,10 +563,12 @@ begin
DoCloseUp;
end;
{
procedure TCheckComboBoxEx.CloseUpHandler(Sender: TObject);
begin
CloseUp;
end;
}
procedure TCheckComboBoxEx.DoChange;
begin
@ -829,6 +847,7 @@ begin
F.Initialize(FDropDownCount, PopupOrigin, PopupWidth);
SaveInitialChecks;
F.FCheckListbox.OnItemClick := @ItemClickHandler;
F.OnClose := @CheckComboBoxFormCloseHandler;
F.Show;
FDroppedDown := true;
FCheckListbox := F.FCheckListbox;