![]() |
Programmsymbol aus ListBox in TImage laden?
Hi,
hab folgendes Problem. ich lade ein Programm in eine Listbox, und per klick auf einen Button wird es gestartet via ShellExecute. Ich habe auf dem Formular ein TImage platziert, das das entsprechende Programmsymbol anzeigen soll, welches ausgewählt ist. Wie bekomme ich das hin? Danke schonmal im vorraus. |
Re: Programmsymbol aus ListBox in TImage laden?
Hallo,
![]() |
Re: Programmsymbol aus ListBox in TImage laden?
danke, klappt leider nicht. bekomme die fehlermeldung das die Variable 'Icon' zwar deklariert würde aber nie benutzt in ShellExecuteMessage....?
Delphi-Quellcode:
procedure TForm2.Button3Click(Sender: TObject);
var TempIcon: HICON; Icon:TIcon; begin openDialog := TOpenDialog.Create(self); openDialog.InitialDir := GetCurrentDir; openDialog.Options := [ofFileMustExist]; openDialog.Filter := 'Anwendungen|*.exe;*.com'; openDialog.FilterIndex := 0; if openDialog.Execute then begin TempIcon := IconFromFile(OpenDialog1.FileName,0); if (TempIcon <> 0) then begin Icon:=TIcon.Create; Try Icon.Handle := TempIcon; Icon.SaveToFile('c:\Merke.ico'); With Image1.Canvas Do DrawIconEx(Handle, 0, 0,TempIcon, 16, 16, 0, Brush.Handle, di_Normal); Finally Icon.Free; End; end; Form4.Show; end; end; |
Re: Programmsymbol aus ListBox in TImage laden?
Das sollte aber nur ein Hinweis und kein Fehler sein. Sonst Zeichne Icon statt TempIcon
|
Re: Programmsymbol aus ListBox in TImage laden?
Habs mal mit folgendem code versucht, welcher leider nicht funktionert - compiliert wird das programm trotzdem fehlerfrei. Aber ein Icon bekomme ich bei TImage nicht angezeigt.
Delphi-Quellcode:
procedure TForm2.Button3Click(Sender: TObject);
var IconIndex : Integer; h : hIcon; S : String; Icon : TIcon; Bitmap : TBitmap; begin openDialog := TOpenDialog.Create(self); openDialog.InitialDir := GetCurrentDir; openDialog.Options := [ofFileMustExist]; openDialog.Filter := 'Anwendungen|*.exe;*.com'; openDialog.FilterIndex := 0; if openDialog.Execute then begin Icon := TIcon.Create; IconIndex := 0; S := ExtractFileName(OpenDialog1.FileName); h := ExtractIcon(0,PAnsiChar(S),IconIndex); Icon.Handle := h; ImageList1.AddIcon (Icon); try ImageList1.GetIcon(0, Icon); Image1.Canvas.Draw(0, 0, Icon); finally FreeAndNil(Icon); end; end; Form4.Show; end; |
Re: Programmsymbol aus ListBox in TImage laden?
Könnte das an der Zeile
Delphi-Quellcode:
liegen?
S := ExtractFileName(OpenDialog1.FileName);
|
Re: Programmsymbol aus ListBox in TImage laden?
sorry, ich steh gerade auf dem schlauch. Inwiefern meinst du das?
Normalerweise müsste der doch das symbol aus der *.exe holen,das ich mit dem Öffnen Dialog einlese, oder nicht? |
Re: Programmsymbol aus ListBox in TImage laden?
Ja aber warum entfernst du den Pfad?
|
Re: Programmsymbol aus ListBox in TImage laden?
Aber mit ExtractFileName löschst Du den Pfad ja raus.
|
Re: Programmsymbol aus ListBox in TImage laden?
Hm....stimmt. Wie lautet denn dann die richtige Bezeichnung?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 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-2025 by Thomas Breitkreuz