Autor Beitrag
cybersoul
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 43



BeitragVerfasst: So 13.02.05 08:22 
Hi,

kann mir jemand sagen, warum von den folgenden drei Beispielen
die letzten beiden nicht funktionieren?

Beispiel 1 :
ausblenden Delphi-Quelltext
1:
  hIcon:=extractassociatedicon(hInstance,pchar(edit1.text),index);					

Beispiel 2 :
ausblenden Delphi-Quelltext
1:
  hIcon:=extractassociatedicon(hInstance,pchar('C:\Autoexec.bat'),index);					

Beispiel 3 :
ausblenden Delphi-Quelltext
1:
2:
  S:='c:\AutoExec.bat';
  hIcon:=extractassociatedicon(hInstance,pchar(S),index);


Gruss,
Heiko

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
Sprint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 849



BeitragVerfasst: So 13.02.05 08:43 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyIcon: HICON;
  Index: Word;
  Buffer: array[0..MAX_PATH] of Char;
begin

  Index := 0;
  StrPCopy(Buffer, Edit1.Text); // oder StrPCopy(Buffer, 'C:\AUTOEXEC.BAT');

  MyIcon := ExtractAssociatedIcon(HInstance, Buffer, Index);
  if MyIcon = 0 then
    ShowMessage(SysErrorMessage(GetLastError))
  else
    Self.Icon.Handle := MyIcon;

end;


Es reicht nicht aus, nur den Dateinamen zu übergeben. Der muss, aus welchem Grunde auch immer, genügend Speicher haben.
Wenn eine API Funktion fehlschlägt, dann kannst du mit GetLastError ermitteln, woran es lang. Windows wird es dir dann erzählen.

_________________
Ciao, Sprint.
cybersoul Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 43



BeitragVerfasst: So 13.02.05 08:50 
Danke Sprint,
funktioniert bestens.