Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi FTP Client: Icons von den Dateien des Servers erhalten (https://www.delphipraxis.net/66849-ftp-client-icons-von-den-dateien-des-servers-erhalten.html)

Nogge 5. Apr 2006 12:07


FTP Client: Icons von den Dateien des Servers erhalten
 
Hallo Community,
Ich möchte gern die Icons für die Dateien des Servers anzeigen lassen, nur weiß ich nicht, wie ich die Icons bzw. die Indizes der 'system32.dll' von Standard-FTP-Servern erhalte (könnte mir ja nen eigenen schreiben).
Kann mir jemand sagen, wie ich da vorgehen muss?

THX Nogge

sECuRE 5. Apr 2006 12:40

Re: FTP Client: Icons von den Dateien des Servers erhalten
 
Hi Nogge,

das hat nichts mit dem FTP-Server zu tun, der FTP-Standard sieht so etwas gar nicht vor. Welches Icon eine Datei haben soll, kriegst du über die Erweiterung heraus (ExtractFileExt()), such mal hier in der DP danach, wie das üblicherweise funktioniert.

cu

Nogge 5. Apr 2006 12:50

Re: FTP Client: Icons von den Dateien des Servers erhalten
 
Mmh, wenn das echt nicht funktioniert, dann muss ich es wohl über die Standard-Windowsfunktionen (z.B. SHGetFileInfo) vom Client aus machen.

Gut, Danke für den Hinweis, sECuRE!

fLeTCHeR 7. Apr 2006 09:21

Re: FTP Client: Icons von den Dateien des Servers erhalten
 
mmmh... das würd mich mal interessieren wie du das machst. wenn de das hinbekommen hast, kannste das ja mal posten?

gruß fLeTCHeR

Nogge 7. Apr 2006 09:25

Re: FTP Client: Icons von den Dateien des Servers erhalten
 
Delphi-Quellcode:
  AIcon := TIcon.Create;
  try
    AIcon.Handle := GetShellIcon(ExtractFileExt(DL_Item.Caption), SHGFI_USEFILEATTRIBUTES);
    Item.ImageIndex := IL_loc.AddIcon(AIcon);
  finally
    AIcon.Free;
  end;
// ------------------------------------------------------------------------------
function TForm1.GetShellIcon(const FileName: string; Flags: Cardinal = 0): HICON;
{
  dwFileAttr:
  FILE_ATTRIBUTE_READONLY            = $00000001;
  FILE_ATTRIBUTE_HIDDEN              = $00000002;
  FILE_ATTRIBUTE_SYSTEM              = $00000004;
  FILE_ATTRIBUTE_DIRECTORY           = $00000010;
  FILE_ATTRIBUTE_ARCHIVE             = $00000020;
  FILE_ATTRIBUTE_NORMAL              = $00000080;
  FILE_ATTRIBUTE_TEMPORARY           = $00000100;
  FILE_ATTRIBUTE_COMPRESSED          = $00000800;
  FILE_ATTRIBUTE_OFFLINE             = $00001000;

  Flags:
  SHGFI_LINKOVERLAY
  SHGFI_OPENICON
  SHGFI_USEFILEATTRIBUTES
}
var
  fInfo      : TSHFileInfo;
  dwFileAttr : Cardinal;
begin
  FillMemory(@fInfo, SizeOf(fInfo), 0);

  if (FileName = '') then
    dwFileAttr := FILE_ATTRIBUTE_DIRECTORY
  else
    dwFileAttr := 0;

  SHGetFileInfo(PChar(FileName), dwFileAttr, fInfo, SizeOf(fInfo), Flags or SHGFI_ICON);

  Result := fInfo.hIcon;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 Uhr.

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