Packager: Set Transparent property for all TBitmap Component icons. Issue #28478, patch from Ondrej Pokorny.

git-svn-id: trunk@49689 -
This commit is contained in:
juha 2015-08-19 11:52:42 +00:00
parent 090fa94d89
commit 5d3813ec5f

View File

@ -3981,25 +3981,19 @@ var
ResHandle: TLResource; ResHandle: TLResource;
ResName: String; ResName: String;
begin begin
Result := nil;
ResName := ComponentClass.ClassName; ResName := ComponentClass.ClassName;
// prevent raising exception and speedup a bit search/load // prevent raising exception and speedup a bit search/load
ResHandle := LazarusResources.Find(ResName); ResHandle := LazarusResources.Find(ResName);
if ResHandle <> nil then if ResHandle <> nil then
Result := CreateBitmapFromLazarusResource(ResHandle) Result := CreateBitmapFromLazarusResource(ResHandle)
else else
if FindResource(HInstance, PChar(ResName), PChar(RT_BITMAP)) <> 0 then
begin
Result := TBitmap.Create;
Result.LoadFromResourceName(HInstance, ResName);
Result.Transparent := True;
end
else
if FindResource(HInstance, PChar(ResName), PChar(RT_RCDATA)) <> 0 then
Result := CreateBitmapFromResourceName(HInstance, ResName); Result := CreateBitmapFromResourceName(HInstance, ResName);
if Result = nil then if Result = nil then
Result := CreateBitmapFromResourceName(HInstance, 'default'); Result := CreateBitmapFromResourceName(HInstance, 'default')
else
if Result is TBitmap then
Result.Transparent := True;
end; end;
function TPkgComponent.HasIcon: boolean; function TPkgComponent.HasIcon: boolean;