Einzelnen Beitrag anzeigen

Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Alphablending und die ImageList

  Alt 6. Apr 2007, 20:44
Du musst der Imagelist nur beibringen, dass sie Alpha-Kanäle verkraften soll. Code-Fetzen, den ich aus dem Usenet habe:


Delphi-Quellcode:
type
  TILConvertColorType = (
    cctColor8, // ICL_COLOR8
    cctColor16, // ICL_COLOR16
    cctColor24, // ICL_COLOR24
    cctColor32 // ICL_COLOR32
  );


procedure ILConvertColor (ImageList : TImageList;
  const ColorType : TILConvertColorType);
var
  IL : TImageList;
  Flags : LongWord;
begin
  Flags := ILC_MASK;


  case ColorType of
    cctColor8 : Flags := Flags or ILC_COLOR8;
    cctColor16 : Flags := Flags or ILC_COLOR16;
    cctColor24 : Flags := Flags or ILC_COLOR24;
    cctColor32 : Flags := Flags or ILC_COLOR32;
  end;


  IL := TImageList.Create(nil);
  try
    IL.Assign(ImageList);


    with ImageList do
      Handle := ImageList_Create(Width, Height, Flags, Count, AllocBy);


    ImageList.Assign(IL);
  finally
    IL.Free;
  end;
end;

Verwendung: Zur Designzeit ganz normal die Bilder in die Liste einfügen, dann zur Laufzeit die Liste einmal mit obiger Funktion konvertieren.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat