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); 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.
.