Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Programmsymbol aus ListBox in TImage laden? (https://www.delphipraxis.net/115621-programmsymbol-aus-listbox-timage-laden.html)

Johnny Bravo 15. Jun 2008 02:06


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.

Namenloser 15. Jun 2008 03:05

Re: Programmsymbol aus ListBox in TImage laden?
 
Hallo,
damit könnte es gehen. Hab um die Uhrzeit aber nicht mehr dne Nerv dazu es zu testen :mrgreen:

Johnny Bravo 15. Jun 2008 10:33

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;

mkinzler 15. Jun 2008 10:50

Re: Programmsymbol aus ListBox in TImage laden?
 
Das sollte aber nur ein Hinweis und kein Fehler sein. Sonst Zeichne Icon statt TempIcon

Johnny Bravo 15. Jun 2008 13:11

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;

DeddyH 15. Jun 2008 13:15

Re: Programmsymbol aus ListBox in TImage laden?
 
Könnte das an der Zeile
Delphi-Quellcode:
S := ExtractFileName(OpenDialog1.FileName);
liegen?

Johnny Bravo 15. Jun 2008 13:27

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?

mkinzler 15. Jun 2008 13:27

Re: Programmsymbol aus ListBox in TImage laden?
 
Ja aber warum entfernst du den Pfad?

DeddyH 15. Jun 2008 13:28

Re: Programmsymbol aus ListBox in TImage laden?
 
Aber mit ExtractFileName löschst Du den Pfad ja raus.

Johnny Bravo 15. Jun 2008 13:41

Re: Programmsymbol aus ListBox in TImage laden?
 
Hm....stimmt. Wie lautet denn dann die richtige Bezeichnung?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:33 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz