![]() |
Icon Problem
Hai,
Also ich habe ein Problem mit meiner Schnellstartleiste, ich habe bis jetzt ein Drag&Drop Message eingebaut und kann auch die Programme starten, die in der Schnellstartleiste drin sind. Jetzt fehlt mir noch das Icon des Gedroppeden Gegenstandes, das Problem ist ich weiß nicht wie ich das Icon der .Exe auslesen, dann in Bitmap konvertieren, abspeichern, und dann auf dem Button, wo man Drag&Drop gemacht hat, absetzt... Hier mein Codeschnipsel:
Delphi-Quellcode:
Ja, noch eine Frage... Muss ich das Icon jetzt unbedingt abspeichern oder kann ich das auch als TempIcon machen??
function FileIcon(FileName: String): TIcon;
var FileInfo: TSHFileInfo; AIcon: TIcon; begin FillChar(FileInfo,SizeOf(FileInfo),#0); SHGetFileInfo(PChar(FileName),0,FileInfo,SizeOf(FileInfo),SHGFI_ICON or SHGFI_LARGEICON); AIcon:=TIcon.Create; Try AIcon.Handle:=FileInfo.HIcon; AIcon.Transparent:=True; Except end; Result:=AIcon; end; procedure TForm1.WMDROPFILES (var Msg: TMessage); var i, anzahl, size: integer; Dateiname: PChar; antwort: Integer; s : string; Icon: TIcon; begin inherited; Dateiname := ''; anzahl := DragQueryFile(Msg.WParam, $FFFFFFFF, Dateiname, 255); for i := 0 to (anzahl - 1) do begin size := DragQueryFile(Msg.WParam, i , nil, 0) + 1; Dateiname:= StrAlloc(size); DragQueryFile(Msg.WParam,i , Dateiname, size); //hier dein source - in "Dateiname" ist der name des droped objectes begin Icon := TIcon.Create; try Icon.Loadfromfile(dateiname); s:= ChangeFileExt(dateiname,'.BMP'); Image1.Width := Icon.Width; Image1.Height := Icon.Height; Image1.Canvas.Draw(0,0,Icon); Image1.Picture.SaveToFile((ExtractFilePath(ParamStr(0))+'1.BMP')); finally Icon.Free; end; end; Mfg Philipp Wer sich interisiert sich mal das halbfertige Programm anzuschauen, kann sich ![]() |
Re: Icon Problem
du musst das Icon nicht abspeichern. TIcon ist genau wie TBitmap vom Typ TGraphic abgeleitet. Du solltest also mit Bitmap.Assign(Icon) das ganze auf das Bitmap bekommen (ansonsten Canvas.Draw nutzen damit kannst du jedes TGraphic auf die Canvas bringen (in dem fall auf die der Bitmap)).
|
Re: Icon Problem
So jetzt hab ich das auch, aber wie bring ich das, wenn man einen Gegenstand gedropped hat, das danna uf dieser Schaltfläche das Icon zu sehen ist?
|
Re: Icon Problem
Mit einem BitBlt sollte das gehen.
|
Re: Icon Problem
Zitat:
|
Re: Icon Problem
Luckie meint einen Button der (soweit ich mich erinnere) die Eigenschaft Glyph hat. Der kannst du das TGraphic zuweisen (BitBlt ist eine Funktion zum Zeichen <> TBitBtn).
Auch möglich wäre ein TToolButton gepaart mit einer Imageliste (TImageList) in welcher du die Icons sammelst. |
Re: Icon Problem
Zitat:
|
Re: Icon Problem
@dahead
hmm... ToolBar mit ImageList !!! PERFEKT! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz