Einzelnen Beitrag anzeigen

Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#4

Re: weissen Hintergrund eines Icons entfernen

  Alt 28. Apr 2008, 21:41
hab mir mal meine quellen von TBitBn angeschaut...dabei ist mir aufgefallen, dass das Glyphbitmap vor dem Zeichnen nach TButtonGlyph gecasted wird (warum auch immer).
auffällig ist, dass in dessen constructor die transparentcolor (clOlive) gesetzt wird, jedoch nirgends anders geändert wird (auch nicht im OnChanged).

mein folgender Test mit deinem Code hat den Papierkorb transparent gemalt...nicht schön, aber hab keine Möglichkeit mit weniger code gefunden.

Delphi-Quellcode:
  with Bitmap do
  begin
    Height := Icon.Height;
    Width := Icon.Width;
    canvas.Brush.Color:=clOlive; //neue Transparentfarbe an TButtonGlyph anpassen
    canvas.FillRect(rect(0,0,width,height));
    TransparentColor := canvas.Brush.Color;
    Transparent := true;
    Canvas.Draw(0, 0, Icon);
  end;
bevor es noch jemand probiert...folgendes funtioniert nicht:
Delphi-Quellcode:
  Button.Glyph.Assign(Bitmap);
  button.Glyph.TransparentColor:=button.Glyph.Canvas.Pixels[0,0];
  button.Glyph.Transparent:=true;
ist übrigends bei TSpeedbutton der gleiche Mist...

HTH Frank
  Mit Zitat antworten Zitat