fix mem leak for loading images

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1058 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2009-12-14 17:26:29 +00:00
parent 2a89c7aea9
commit 4e0e0d5784
3 changed files with 29 additions and 7 deletions

View File

@ -940,6 +940,7 @@ var
BackPanel: TWinControl; BackPanel: TWinControl;
MI:TMenuItem; MI:TMenuItem;
i:integer; i:integer;
TmpBitmap:TBitmap;
begin begin
inherited Create(AOwner); inherited Create(AOwner);
@ -1016,7 +1017,12 @@ begin
begin begin
Parent := FControlPanel; Parent := FControlPanel;
SetBounds(-1, -1, BtnSide, BtnSide); SetBounds(-1, -1, BtnSide, BtnSide);
Glyph := LoadBitmapFromLazarusResource('prev2'); // Glyph := LoadBitmapFromLazarusResource('prev2');
//loaded bitmap should be freed as Glyph just takes a copy of it
TmpBitmap:=LoadBitmapFromLazarusResource('prev2');
Glyph := TmpBitmap;
FreeAndNil(TmpBitmap);
OnClick := @PrevYearBtnClick; OnClick := @PrevYearBtnClick;
Hint := sPrevYear; Hint := sPrevYear;
Align:=alLeft; Align:=alLeft;
@ -1027,7 +1033,12 @@ begin
begin begin
Parent := FControlPanel; Parent := FControlPanel;
SetBounds(BtnSide - 2, -1, BtnSide, BtnSide); SetBounds(BtnSide - 2, -1, BtnSide, BtnSide);
Glyph:=LoadBitmapFromLazarusResource('prev1'); // Glyph:=LoadBitmapFromLazarusResource('prev1');
TmpBitmap:=LoadBitmapFromLazarusResource('prev1');
Glyph := TmpBitmap;
FreeAndNil(TmpBitmap);
OnClick := @PrevMonthBtnClick; OnClick := @PrevMonthBtnClick;
Hint := sPrevMonth; Hint := sPrevMonth;
Align:=alLeft; Align:=alLeft;
@ -1038,7 +1049,10 @@ begin
begin begin
Parent := FControlPanel; Parent := FControlPanel;
SetBounds(FControlPanel.Width - 2 * BtnSide + 2, -1, BtnSide, BtnSide); SetBounds(FControlPanel.Width - 2 * BtnSide + 2, -1, BtnSide, BtnSide);
Glyph:=LoadBitmapFromLazarusResource('next1'); // Glyph:=LoadBitmapFromLazarusResource('next1');
TmpBitmap:=LoadBitmapFromLazarusResource('next1');
Glyph := TmpBitmap;
FreeAndNil(TmpBitmap);
OnClick := @NextMonthBtnClick; OnClick := @NextMonthBtnClick;
Hint := sNextMonth; Hint := sNextMonth;
Align:=alRight; Align:=alRight;
@ -1049,7 +1063,10 @@ begin
begin begin
Parent := FControlPanel; Parent := FControlPanel;
SetBounds(FControlPanel.Width - BtnSide + 1, -1, BtnSide, BtnSide); SetBounds(FControlPanel.Width - BtnSide + 1, -1, BtnSide, BtnSide);
Glyph:=LoadBitmapFromLazarusResource('next2'); // Glyph:=LoadBitmapFromLazarusResource('next2');
TmpBitmap:=LoadBitmapFromLazarusResource('next2');
Glyph := TmpBitmap;
FreeAndNil(TmpBitmap);
OnClick := @NextYearBtnClick; OnClick := @NextYearBtnClick;
Hint := sNextYear; Hint := sNextYear;
Align:=alRight; Align:=alRight;

View File

@ -2639,7 +2639,7 @@ begin
// FTitleButtons:=True; // FTitleButtons:=True;
F_Clicked := False; F_Clicked := False;
F_MenuBMP := TBitmap.Create; // F_MenuBMP := TBitmap.Create;
F_MenuBMP := LoadLazResBitmapImage('menu_grid'); F_MenuBMP := LoadLazResBitmapImage('menu_grid');
DoCreateJMenu; DoCreateJMenu;

View File

@ -1451,6 +1451,8 @@ begin
end; end;
constructor TRxCustomDBLookupCombo.Create(AOwner: TComponent); constructor TRxCustomDBLookupCombo.Create(AOwner: TComponent);
var
ArrowBmp:TBitmap;
begin begin
inherited Create(AOwner); inherited Create(AOwner);
Height := 23; Height := 23;
@ -1490,10 +1492,13 @@ begin
// //
Color:=clWindow; Color:=clWindow;
FEmptyItemColor:=clWindow; FEmptyItemColor:=clWindow;
Glyph:=CreateArrowBitmap; // Glyph:=CreateArrowBitmap;
ArrowBmp:=CreateArrowBitmap;
Glyph:=ArrowBmp;
FreeAndNil(ArrowBmp); //free bitmap as TSpeedButton setter takes a copy of bitmap
ButtonWidth:=15; ButtonWidth:=15;
TabStop:=true; TabStop:=true;
end; end;
destructor TRxCustomDBLookupCombo.Destroy; destructor TRxCustomDBLookupCombo.Destroy;