AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Icon aus Exe funktioniert nur auf Button?
Thema durchsuchen
Ansicht
Themen-Optionen

Icon aus Exe funktioniert nur auf Button?

Ein Thema von Flodding · begonnen am 5. Mär 2009 · letzter Beitrag vom 5. Mär 2009
 
Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#1

Icon aus Exe funktioniert nur auf Button?

  Alt 5. Mär 2009, 13:00
Huhu und Guten Tag zusammen...

ich hab im Internet diese Funktion gefunden, die aus 2 Teilen besteht...

Delphi-Quellcode:
uses
  ShellApi;

// Gibt Anzahl Icons aus EXE, DLL oder ICO.
function TotalNumberOfIcons(const FileName: String): Integer;
begin
  if not FileExists(FileName) then Result := -1
// else Result := ExtractIcon(HInstance, PChar(FileName), -1); Fehler korrigiert.
    else Result := ExtractIcon(HInstance, PChar(FileName), $FFFFFFFF);
end; {Popov}
Delphi-Quellcode:
uses
  ShellApi;

// Gibt Icon zurück aus EXE, DLL oder ICO.
function GetIconFromFileA(const FileName: String; Index: Word;
  Icon: TIcon): Boolean;
begin
  Result := False;
  if (TotalNumberOfIcons(FileName) < 1) or
     ((Index + 1 ) > TotalNumberOfIcons(FileName)) then
    Exit;

  Icon.Handle := ExtractIcon(HInstance, PChar(FileName), Index);
  Result := True;
end; {Popov}
wenn ich jetzt geticonfromfilea aus einem button aufrufe...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  AIcon: TIcon;
begin
  AIcon := TIcon.Create;
  try
    if GetIconFromFileA('c:\windows\explorer.exe', 0, AIcon) then
    form1.canvas.Draw(0, 0, AIcon);
  finally
    AIcon.Free;
  end;
end;
... dann zeigt er mir das icon in der oberen linken ecke meines forms an... supiklasse

verwende ich das ganze jetzt aber so:

Delphi-Quellcode:
procedure ExeSearch(ADirectory: String);
var
  SS: TSearchRec;
  AIcon: TIcon;
begin
    if FindFirst(ADirectory + '\*.exe', faAnyFile, SS)=0 then
    begin
      repeat
        with form1 do begin

AIcon := TIcon.Create;
try
if GetIconFromFileA('c:\windows\explorer.exe', 0, AIcon) then
canvas.Draw(0, 0, AIcon);
finally
AIcon.Free;
end;

        Programmpfada[a] := ADirectory + '\' + SS.Name;
        listbutton[y] := TXiButtonLeft.Create(form1.ScrollBox1);
        ListButton[y].Caption:=(GetVersionInfo(ADirectory + '\' + SS.Name, 'FileDescription'));
        listbutton[y].left:=0;
etc...
        listbutton[y].Parent := form1.ScrollBox1;
        ListButton[y].OnClick:= ListButton_Click;
        ListButton[y].Name:='List' + inttostr(y);
        a:=a+1;
        x:=x+22;
        y:=y+1;
        end;
      until FindNext(SS)<>0;
      FindClose(SS);
    end;
end;
dann wird mir kein icon oben links in der ecke angezeigt... warum?
Flo
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 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