Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Icon in ImageList laden & in einer Listview anzeigen lassen (https://www.delphipraxis.net/37154-icon-imagelist-laden-einer-listview-anzeigen-lassen.html)

Yheeky 1. Jan 2005 15:55


Icon in ImageList laden & in einer Listview anzeigen las
 
Hi!

Ich habe folgendes Problem: Ich habe eine Funktion, die ein Icon einer Datei in ein Bitmap ausliest. Das verarbeite ich so:

Code:
if (SpieleDialog.Execute) and (SpieleDialog.FileName <> '') then
   begin
   SpielePfad.Text := SpieleDialog.FileName;
   Dummy := 1;
   Icon := TIcon.Create;
   Icon.Handle := ExtractAssociatedIcon(Handle, PChar(SpieleDialog.FileName), Dummy);
   SpieleIcon.Canvas.Draw(0, 0, Icon);
   SpieleList.AddIcon(Icon);
   Icon.Free;
   end;
Wenn ich nun die Imagelist (in die das Icon reingeladen wird) mit der ListView verknüpfe (wo das Icon schließlich angezeigt werden soll), wird dies nicht transparent, sondern mit einem schwarzen Hintergrund angezeigt. Woran liegt das und wie kann ich das transparent anzeigen lassen?

Gruß Yheeky

Yheeky 4. Jan 2005 12:52

Re: Icon in ImageList laden & in einer Listview anzeigen
 
Hat keiner eine Idee?

mirage228 4. Jan 2005 13:03

Re: Icon in ImageList laden & in einer Listview anzeigen
 
Hi,

versuch das im FormCreate Deiner Form ausführen:

Delphi-Quellcode:
var
  SHFileInfo: TSHFileInfo;
  SysIcons : THandle;
begin
  // SpieleIcon := TImageList.Create(Self);
  SpieleIcon.Masked := False;
  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;
  SpieleIcon.Handle := SysIcons;
  SpieleIcon.ShareImages := True;
Zumindest hat es bei mir so geklappt :gruebel:

mfG
mirage228

Yheeky 4. Jan 2005 20:56

Re: Icon in ImageList laden & in einer Listview anzeigen
 
Mhmm, der Code verändert nur das Aussehen meines OpenDialogs. Ansonsten nicht viel. Dürfte doch eigentlich nicht so schwer sein, ein Icon transparent in einer ListView dazustellen oder? Vielleicht gibt´s da ja noch ne andere Möglichkeit. Ich will das Icon in einem TImage anzeigen und in eine TListView laden, mehr eigentlich nicht.

Gruß Yheeky

Luckie 4. Jan 2005 21:00

Re: Icon in ImageList laden & in einer Listview anzeigen
 
Was hast du denn in der ImageList eingestellt?

Yheeky 5. Jan 2005 12:55

Re: Icon in ImageList laden & in einer Listview anzeigen
 
Habe die Breite und Höhe auf 32 Pixel verändert und hab den Drawing Style auf dsTransparent gestellt. Das war´s...


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