Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Alpha-PNG zur Laufzeit in eine TImageList laden (XE2)

  Alt 11. Feb 2013, 13:59
Hallo!

Ich habe eine TImageList und darin per Property-Editor ein Alpha-PNG geladen. Dieses PNG wird zur Laufzeit z.B. auf einem SpeedButton korrekt angezeigt (Screenshot 1). Wenn ich das selbe PNG (exakt die selbe Datei) zur Laufzeit in die ImageList nachlade, dann sieht es aus wie im Screenshot 2. Wo mache ich da den Denkfehler?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  PNG: TPngImage;
  BMP: TBitmap;
begin
  PNG:= TPngImage.Create;
  BMP:= TBitmap.Create;
  try
    PNG.LoadFromFile('test.png');
    BMP.PixelFormat:= pf32bit;
    PNG.AssignTo(BMP);
    ImageList_Add(ImageList.Handle, BMP.Handle, 0);
    SpeedButton.ImageIndex:= 1;
  finally
    PNG.Free;
// BMP.Free;
  end;
end;
PS: Das eine fehlende Free ist mir schon klar, nur zu Testzwecken
Miniaturansicht angehängter Grafiken
image45.png   image46.png  
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat