Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Icons pixelig... (https://www.delphipraxis.net/65398-icons-pixelig.html)

delphinia 16. Mär 2006 08:35


Icons pixelig...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wie löse ich dieses Probleme siehe Bild

Aufgepixelt und schwarzer Rand

mkinzler 16. Mär 2006 08:38

Re: Icons pixelig...
 
Bei den Icons scheint es sich um die 16x16px-Version zu handeln. Welche Komp?Vielleicht kann man die Icon-Größe dort ja umstellen.

Matze 16. Mär 2006 08:42

Re: Icons pixelig...
 
Hi Doreen,

den schwarzen Rand müsstest du hiermit beseitigen können. ANsonsten würde ich auch sagen, dass die Icongröße nicht stimmt.

delphinia 16. Mär 2006 08:46

Re: Icons pixelig...
 
Benutze die JvImageList und habe dort bei Height und Width 32 eigegeben

mkinzler 16. Mär 2006 08:49

Re: Icons pixelig...
 
Bevor du die Bilder geladen hast oder danach. Die größe wird beim Laden angepasst.

delphinia 16. Mär 2006 09:03

Re: Icons pixelig...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nun habe ich den Code für die schwarzen Ränder in die OnCreate gepackt - nun sind meine Icons aber in Mini-Format ;)

meine QuellCode:


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  LV_InsertFiles_1('C:\Windows\System32\', JvListView1, ImgLst);
end;

Delphi-Quellcode:
procedure LV_InsertFiles_1(strPath: string; ListView: TlistView; ImageList: TJvImageList);
var
  i: Integer;
  Icon: TIcon;
  SearchRec: TSearchRec;
    ListItem: TListItem;
  FileInfo: SHFILEINFO;
begin
  Icon := TIcon.Create;
  ListView.Items.BeginUpdate;

  try
    i := FindFirst(strPath + '*.exe', faAnyFile, SearchRec);
    while i = 0 do
    begin
      with ListView do
      begin
        if ((SearchRec.Attr and FaDirectory <> FaDirectory) and
          (SearchRec.Attr and FaVolumeId <> FaVolumeID)) then
        begin
          ListItem := ListView.Items.Add;

          SHGetFileInfo(PChar(strPath + SearchRec.Name), 0, FileInfo, SizeOf(FileInfo), SHGFI_DISPLAYNAME);
          Listitem.Caption := FileInfo.szDisplayName;

          SHGetFileInfo(PChar(strPath + SearchRec.Name), 0, FileInfo, SizeOf(FileInfo), SHGFI_TYPENAME);
          ListItem.SubItems.Add(FileInfo.szTypeName);

          SHGetFileInfo(PChar(strPath + SearchRec.Name), 0, FileInfo, SizeOf(FileInfo), SHGFI_ICON or SHGFI_SMALLICON);
          icon.Handle := FileInfo.hIcon;

          ListItem.ImageIndex := ImageList.AddIcon(Icon);
          ImageList.AddIcon(Icon);
          DestroyIcon(FileInfo.hIcon);

          Application.ProcessMessages;
        end;
      end;
      i := FindNext(SearchRec);
    end;
  finally
    Icon.Free;
    ListView.Items.EndUpdate;
  end;
end;


Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  SHFileInfo: TSHFileInfo;
  SysIcons: THandle;
begin
  try
    SysIcons := SHGetFileInfo(PChar(copy(ParamStr(0), 1, 3)), 0, SHFileInfo, SizeOf(SHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON or SHGFI_ICON);
  finally
    DestroyIcon(SHFileInfo.hIcon);
  end;
  ImgLst.Handle := SysIcons;
end;

Muetze1 16. Mär 2006 09:45

Re: Icons pixelig...
 
mich macht dabei das SHGFI_SMALLICON etwas stutzig, weil das wohl irgendwie auch sagt, dass man kleine Icons haben will, oder nicht? Naja, mal in der MSDN nach SHGetFileInfo() gesucht hier gefunden und in der Beschreibung zu dem Parameter findet man dann auch SHGFI_LARGEICON, damit sollte man das grosse Icon bekommen (soweit vorhanden, behaupte ich da mal).

delphinia 16. Mär 2006 11:03

Re: Icons pixelig...
 
ok das mit "SHGFI_LARGEICON" hab ich geändert und schwups waren sie wieder gross nur Aufgepixelt wie auf dem Bild aus meinem ersten Posting sind diese immer noch!


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