lcl, ide: redo LoadGlypFromResource to LoadGlyphFromResourceName with ability to pass an Instance handle

git-svn-id: trunk@42972 -
This commit is contained in:
paul 2013-09-27 08:44:38 +00:00
parent 1f87e24e5e
commit 102a858398
9 changed files with 41 additions and 22 deletions

View File

@ -110,9 +110,9 @@ begin
CloseButton.Caption:=lisClose;
ApplyButton.Caption:=lisConvert;
HelpButton.Caption:=lisHelp;
CloseButton.LoadGlyphFromResource('btn_close');
ApplyButton.LoadGlyphFromResource('btn_ok');
HelpButton.LoadGlyphFromResource('btn_help');
CloseButton.LoadGlyphFromResourceName(hInstance, 'btn_close');
ApplyButton.LoadGlyphFromResourceName(hInstance, 'btn_ok');
HelpButton.LoadGlyphFromResourceName(hInstance, 'btn_help');
PreviewGroupBox.Caption:=dlgWRDPreview;
PreviewListView.Column[0].Caption:=dlgEnvFiles;

View File

@ -274,7 +274,7 @@ begin
end;
// buttons
CancelScanningButton.LoadGlyphFromResource('btn_cancel');
CancelScanningButton.LoadGlyphFromResourceName(hInstance, 'btn_cancel');
CloseButton.Caption:=lisClose;
OpenInEditorButton.Caption:=lisDiffDlgOpenDiffInEditor;
SaveDiffButton.Caption:=lisDlgSave;

View File

@ -159,7 +159,7 @@ begin
cbAutoCloseOnSuccess.Checked := EnvironmentOptions.AutoCloseCompileDialog;
ToAbort := True;
BClose.LoadGlyphFromResource('btn_ok');
BClose.LoadGlyphFromResourceName(hInstance, 'btn_ok');
SetProjectName('');
SetStatus('');

View File

@ -168,7 +168,7 @@ type
constructor Create(TheOwner: TComponent); override;
destructor Destroy; override;
procedure Click; override;
procedure LoadGlyphFromResource(const AName: String);
procedure LoadGlyphFromResourceName(Instance: THandle; const AName: String);
procedure LoadGlyphFromLazarusResource(const AName: String);
procedure LoadGlyphFromStock(idButton: Integer);
function CanShowGlyph: Boolean;
@ -332,7 +332,7 @@ type
destructor Destroy; override;
function FindDownButton: TCustomSpeedButton;
procedure Click; override; // make Click public
procedure LoadGlyphFromResource(const AName: String);
procedure LoadGlyphFromResourceName(Instance: THandle; const AName: String);
procedure LoadGlyphFromLazarusResource(const AName: String);
public
property AllowAllUp: Boolean read FAllowAllUp write SetAllowAllUp default false;
@ -416,7 +416,7 @@ var
GetDefaultBitBtnGlyph: TGetDefaultBitBtnGlyph = nil;
function GetLCLDefaultBtnGlyph(Kind: TBitBtnKind): TGraphic;
procedure LoadGlyphFromResource(AGlyph: TButtonGlyph; const AName: String);
procedure LoadGlyphFromResourceName(AGlyph: TButtonGlyph; Instance: THandle; const AName: String);
procedure LoadGlyphFromLazarusResource(AGlyph: TButtonGlyph; const AName: String);
procedure LoadGlyphFromStock(AGlyph: TButtonGlyph; idButton: Integer);
@ -480,17 +480,14 @@ begin
Result.LoadFromResourceName(hInstance, BitBtnResNames[idButton]);
end;
procedure LoadGlyphFromResource(AGlyph: TButtonGlyph; const AName: String);
procedure LoadGlyphFromResourceName(AGlyph: TButtonGlyph; Instance: THandle; const AName: String);
var
C: TPortableNetworkGraphic;
C: TCustomBitmap;
begin
if AName = '' then
C := nil
else
begin
C := TPortableNetworkGraphic.Create;
C.LoadFromResourceName(hInstance, AName);
end;
C := CreateBitmapFromResourceName(Instance, AName);
try
AGlyph.Glyph.Assign(C);

View File

@ -1367,7 +1367,7 @@ begin
Button.ControlStyle := Button.ControlStyle + [csNoDesignSelectable];
aGlyph := GetDefaultGlyph;
if aGlyph = nil then
Button.LoadGlyphFromResource(GetDefaultGlyphName)
Button.LoadGlyphFromResourceName(hInstance, GetDefaultGlyphName)
else
Button.Glyph := aGlyph;
Button.Parent:=self;
@ -1404,7 +1404,7 @@ begin
FButton.ControlStyle := FButton.ControlStyle + [csNoDesignSelectable];
B := GetDefaultGlyph;
if B = nil
then FButton.LoadGlyphFromResource(GetDefaultGlyphName)
then FButton.LoadGlyphFromResourceName(hInstance, GetDefaultGlyphName)
else FButton.Glyph := B;
ControlStyle := ControlStyle - [csSetCaption];
end;

View File

@ -2016,6 +2016,7 @@ function LoadBitmapFromLazarusResource(const ResourceName: String): TBitmap; dep
function LoadBitmapFromLazarusResourceHandle(Handle: TLResource): TBitmap; deprecated;
// technically a bitmap is created and not loaded
function CreateBitmapFromResourceName(Instance: THandle; const ResName: String): TCustomBitmap;
function CreateBitmapFromLazarusResource(const AName: String): TCustomBitmap;
function CreateBitmapFromLazarusResource(const AName: String; AMinimumClass: TCustomBitmapClass): TCustomBitmap;
function CreateBitmapFromLazarusResource(AHandle: TLResource): TCustomBitmap;
@ -2199,6 +2200,27 @@ begin
Result := CreateBitmapFromLazarusResource(AName, TCustomBitmap);
end;
function CreateBitmapFromResourceName(Instance: THandle; const ResName: String): TCustomBitmap;
var
ResHandle: TFPResourceHandle;
begin
ResHandle := FindResource(Instance, PChar(ResName), PChar(RT_BITMAP));
if ResHandle <> 0 then
begin
Result := TBitmap.Create;
Result.LoadFromResourceName(Instance, ResName);
Exit;
end;
ResHandle := FindResource(Instance, PChar(ResName), PChar(RT_RCDATA));
if ResHandle <> 0 then
begin
Result := TPortableNetworkGraphic.Create;
Result.LoadFromResourceName(Instance, ResName);
end
else
Result := nil;
end;
function CreateBitmapFromLazarusResource(const AName: String; AMinimumClass: TCustomBitmapClass): TCustomBitmap;
var
Stream: TLazarusResourceStream;

View File

@ -64,9 +64,9 @@ begin
inherited Click;
end;
procedure TCustomBitBtn.LoadGlyphFromResource(const AName: String);
procedure TCustomBitBtn.LoadGlyphFromResourceName(Instance: THandle; const AName: String);
begin
Buttons.LoadGlyphFromResource(FButtonGlyph, AName);
Buttons.LoadGlyphFromResourceName(FButtonGlyph, Instance, AName);
end;
procedure TCustomBitBtn.LoadGlyphFromLazarusResource(const AName: String);

View File

@ -281,7 +281,7 @@ begin
if CurButtonType in [nbPrior,nbNext] then
CurButton.NavStyle:=CurButton.NavStyle+[nsAllowTimer];
//Load default images
CurButton.LoadGlyphFromResource(DBNavButtonResourceName[CurButtonType]);
CurButton.LoadGlyphFromResourceName(hInstance, DBNavButtonResourceName[CurButtonType]);
//Apply custom images if available
if Assigned(FImages) and (Ord(CurButtontype) < FImages.Count) then
FImages.GetBitmap(Ord(CurButtonType), CurButton.Glyph);
@ -314,7 +314,7 @@ begin
if CurButtonType in [nbPrior,nbNext] then
CurFocusableButton.NavStyle:=CurFocusableButton.NavStyle+[nsAllowTimer];
//Load default images
CurFocusableButton.LoadGlyphFromResource(DBNavButtonResourceName[CurButtonType]);
CurFocusableButton.LoadGlyphFromResourceName(hInstance, DBNavButtonResourceName[CurButtonType]);
//Apply custom images if available
if Assigned(FImages) and (Ord(CurButtontype) < FImages.Count) then
FImages.GetBitmap(Ord(CurButtonType), CurFocusableButton.Glyph);

View File

@ -970,9 +970,9 @@ begin
SetDown(FDownLoaded);
end;
procedure TCustomSpeedButton.LoadGlyphFromResource(const AName: String);
procedure TCustomSpeedButton.LoadGlyphFromResourceName(Instance: THandle; const AName: String);
begin
Buttons.LoadGlyphFromResource(FGlyph, AName);
Buttons.LoadGlyphFromResourceName(FGlyph, Instance, AName);
end;
procedure TCustomSpeedButton.LoadGlyphFromLazarusResource(const AName: String);