Mit folgender Prozedur möchte ich auf einem SpeedButton ein Bild,
aus einer Anwendung, Verknüpfung etc. (Icon) anzeigen lassen
(ohne eine Icon/Bitmap-Datei speichern zu müssen).
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
IconIndex: Word;
ImageHandle: HIcon;
TmpBMP: TBitmap;
TmpIcon : TIcon;
begin
if Edit1.Text <> '' then
begin
IconIndex := 0;
ImageHandle := ExtractAssociatedIcon(hInstance, PChar(Edit1.Text), IconIndex);
if LongInt(ImageHandle) <> 0 then
begin
TmpBMP := TBitmap.Create;
TmpIcon := Icon.Create;
TmpBMP.Width := Icon.Width;
TmpBMP.Height := Icon.Height;
try
TmpIcon.Handle := ImageHandle;
TmpBMP.Canvas.Draw(0, 0, TmpIcon);
SpeedButton1.Glyph.Handle := LoadBitmap(hInstance, PChar(TmpBMP));
finally
TmpBMP.Free;
TmpIcon.Free;
end;
Memo1.Lines.Add('Icon gefunden');
end
else
Memo1.Lines.Add('kein Icon gefunden');
end;
end;
Der SpeedButton bleibt aber bildlos.
Zu dem Thema hab ich schon einiges im Forum gelesen,
mittlerweile hab ich schon so viel rumprobiert dass ich den Wald vor lauter Bäume nicht mehr sehe ;-))).
vllt. hat auch jemand eine bessere (resourenschonende) Variante im Petto
Gruss MarLe