Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi SHGetFileInfo Icon verschwommen (https://www.delphipraxis.net/160997-shgetfileinfo-icon-verschwommen.html)

delphinia 11. Jun 2011 11:44

Delphi-Version: 5

SHGetFileInfo Icon verschwommen
 
Mit dem Code unten habe ich ein problem, dass die Icons alle verschwommen in meinem TImage sind.
warum bzw welche Lösung gibt es?

ExtractIcon kommt nicht in Frage, da ich schon das Icon brauche wie es Windows sieht. Wenn ich mir die Datei im Explorer anschaue ist alles gut...

Delphi-Quellcode:
procedure GetAssociatedIconEx(MyImage: TImage);
var
  SHFileInfo: TSHFileInfo;
begin
  FillChar(SHFileInfo, SizeOf(TSHFileInfo), 0);
  if (SHGetFileInfo(PChar('C:\MeinExt.ghs'), FILE_ATTRIBUTE_NORMAL, SHFileInfo, SizeOf(TSHFileInfo), SHGFI_ICON OR SHGFI_USEFILEATTRIBUTES ) <> 0) then
  try
    MyImage.Picture.Icon.Handle := CopyIcon(SHFileInfo.hIcon);
  finally
    DestroyIcon(SHFileInfo.hIcon);
  end;
end;

Luckie 11. Jun 2011 11:53

AW: SHGetFileInfo Icon matschig
 
Was heißt "matschig"? Matschig ist ein Feldwege nach dem Regen. Meinst du unscharf, verschwommen? Welche Auflösung hat das Icon und wie zeigst du es im TImage an? Kann es sein, dass die Auflösungen nicht zusammenpassen?

delphinia 11. Jun 2011 11:59

AW: SHGetFileInfo Icon verschwommen
 
Ja genau verschwommen das Wort war das was ich suchte :)

Wie ich... na die Function oben genauso
ich habe nen Button in dem OnCLick steht

Delphi-Quellcode:
GetAssociatedIconEx(Image4);
Delphi-Quellcode:
procedure GetAssociatedIconEx(MyImage: TImage);
var
  SHFileInfo: TSHFileInfo;
begin
  FillChar(SHFileInfo, SizeOf(TSHFileInfo), 0);
  if (SHGetFileInfo(PChar('C:\MeinExt.ghs'), FILE_ATTRIBUTE_NORMAL, SHFileInfo, SizeOf(TSHFileInfo), SHGFI_ICON OR SHGFI_USEFILEATTRIBUTES ) <> 0) then
  try
    MyImage.Picture.Icon.Handle := CopyIcon(SHFileInfo.hIcon);
  finally
    DestroyIcon(SHFileInfo.hIcon);
  end;
end;
das Image4 ist 32/32px gross


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 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