![]() |
Re: Icons in TListView haben schwarzen Rand!
Zitat:
mfG mirage228 |
Re: Icons in TListView haben schwarzen Rand!
Zitat:
|
Re: Icons in TListView haben schwarzen Rand!
Bei mir geht es trotzdem nicht... erst werden bei den ersten 5 einige systemicons angezeigt (verknüpfung und so...) und wenn ich erst zur laufzeit ein 32bit-Bitmap hinzufüge (wenn ich bei Maske nil angebe) bleibt der Hintegrund schwarz. Ich weiß nicht, wie ich das mit der Maske etc. machen soll... kann nicht mal jemand einen beispielprogramm (wenigstens OnCreate und wie man dann Bitmaps oder Icons hinzufügt)?
:thumb: Aber ich find's schon klasse, das wenigsten die 5 system icons mit schatten gezeigt werden!!! :-D gruß, timon |
Re: Icons in TListView haben schwarzen Rand!
Sorry...
Hab's schon selber entdeckt wie man Icons anfügt! Habe aber was anderes zu fragen: Ich habe versucht eine dafür passende T(New)ImageList erstellt, aber die Icons die ich hinzufüge sind immer nur 5 mal 5 Pixel groß:
Delphi-Quellcode:
Gruß,
constructor TNewImageList.Create(AOwner: TComponent);
var SHFileInfo: TSHFileInfo; SysIcons: THandle; begin inherited Create(AOwner); 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; Self.Handle := SysIcons; end; Timon. |
Re: Icons in TListView haben schwarzen Rand!
|
Re: Icons in TListView haben schwarzen Rand!
Zitat:
Gibt es denn irgendwo eine neuere ShellAPI.dcu bei Borland für Delphi 3 zu downloaden??? Gruß, Timon. |
Re: Icons in TListView haben schwarzen Rand!
Hi,
der ImageList_Create() Befehl ist nicht in der Unit ShellAPI, sondern in der CommCtrl Unit deklariert. mfG mirage228 |
Re: Icons in TListView haben schwarzen Rand!
Zitat:
Stimmt... Ich hatte bei mir den Befehl nur an falscher Stelle platziert. Aber funktionieren tut es so
Code:
trotzdem nicht.
Handle := ImageList_Create(16,16,ILC_COLOR32,255,0);
Aber ich habe mir jetzt dieses Convert ImageList (XP Fix) angeschaut und eingebunden:
Code:
Gruß,
//Diese Procedure habe ich hinzugefügt...
procedure ConvertTo32BitImageList(const ImageList: TImageList); const Mask: array[Boolean] of Longint = (0, ILC_MASK); var TemporyImageList: TImageList; begin if Assigned(ImageList) then begin TemporyImageList := TImageList.Create(nil); try TemporyImageList.Assign(ImageList); with ImageList do begin ImageList.Handle := ImageList_Create(Width, Height, ILC_COLOR32 or Mask[Masked], 0, AllocBy); if not ImageList.HandleAllocated then begin raise EInvalidOperation.Create(SInvalidImageList); end; end; ImageList.AddImages(TemporyImageList); finally TemporyImageList.Free; end; end; end; //...und hier eingebunden. constructor TNewImageList.Create(AOwner: TComponent); begin inherited Create(AOwner); ConvertTo32BitImageList(Self); end; Timon. |
Re: Icons in TListView haben schwarzen Rand!
Hi,
in Deinem Aufruf:
Delphi-Quellcode:
sind die letzten beiden Parameter anders, als in der Prozedur darunter. Eventuell liegt es daran.
ImageList_Create(16,16,ILC_COLOR32,255,0);
Ich konnte die Prozedur übrigens ohne Fehlermeldungen unter Delphi 3 compilieren. Daher wäre es gut zu wissen, was genau nicht klappt. mfG mirage228 |
Re: Icons in TListView haben schwarzen Rand!
Zitat:
Gruß, Timon. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 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