![]() |
Transparenzproblem bei Manipulation eines Icons...
Ich habe ein kleines Problem mit dem Ändern eines Icons. Das merkwürdige an der Sache ist, dass es auf einem Rechner läuft und auf dem anderen nicht...
![]()
Delphi-Quellcode:
procedure TXBuddy_Main.WriteReading(IsReading: Boolean);
var StartX, StartY: integer; id, n, x, y: integer; IsLarger: boolean; Bmp: TBitmap; ImageList: TImageList; TrColor: TColor; begin if IsReading = True then begin TNA_IconTmp.Assign(TNA_Icon); try Bmp := TBitmap.Create; Bmp.Height := 16; Bmp.Width := 16; { Hintergrundfarbe } Bmp.Canvas.Brush.Color := clFuchsia; Bmp.Canvas.FloodFill(0, 0, clFuchsia, fsBorder); Bmp.Canvas.Draw(0, 0, TNA_Icon); Bmp.Canvas.Pixels[2, 2] := clMaroon; Bmp.Canvas.Pixels[2, 3] := clRed; Bmp.Canvas.Pixels[2, 4] := clRed; Bmp.Canvas.Pixels[2, 5] := clMaroon; Bmp.Canvas.Pixels[3, 2] := clRed; Bmp.Canvas.Pixels[3, 3] := clRed; Bmp.Canvas.Pixels[3, 4] := clRed; Bmp.Canvas.Pixels[3, 5] := clRed; Bmp.Canvas.Pixels[4, 2] := clRed; Bmp.Canvas.Pixels[4, 3] := clRed; Bmp.Canvas.Pixels[4, 4] := clRed; Bmp.Canvas.Pixels[4, 5] := clRed; Bmp.Canvas.Pixels[5, 2] := clMaroon; Bmp.Canvas.Pixels[5, 3] := clRed; Bmp.Canvas.Pixels[5, 4] := clRed; Bmp.Canvas.Pixels[5, 5] := clMaroon; ImageList := TImageList.CreateSize(16, 16); try ImageList.AddMasked(Bmp, clFuchsia); ImageList.GetIcon(0, TNA_Icon); finally ImageList.Free; end; finally Bmp.Free; end; end else TNA_Icon.Assign(TNA_IconTmp); end; |
Re: Transparenzproblem bei Manipulation eines Icons...
liegt vielleicht an der Grafikkarte, stell
die exe-file doch mal zum Download frei, dann kanns n anderer mit xp-pro testen. |
Re: Transparenzproblem bei Manipulation eines Icons...
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ist mal ein Beispiel...
|
Re: Transparenzproblem bei Manipulation eines Icons...
Läuft ohne visuelle Makel.
(Windows XP Professional SP1, 32bit, nVidia GeForce 4 Ti4400 mit Forceware 53.03) mfG mirage228 |
Re: Transparenzproblem bei Manipulation eines Icons...
Liste der Anhänge anzeigen (Anzahl: 1)
Unter XP pro mit einer Mobile Radeon läuft es nicht richtig...
|
Re: Transparenzproblem bei Manipulation eines Icons...
Zitat:
MfG Christian |
Re: Transparenzproblem bei Manipulation eines Icons...
Liste der Anhänge anzeigen (Anzahl: 1)
Das Icon selbst scheint in Ordnung zu sein... ich habe jetzt mal folgenden Code am Ende der eingebaut:
Delphi-Quellcode:
Allerdings scheint Delphi nur eine 16-Farb Version in den Stream zu speichern, obwohl es ein 32-Bit Icon ist :(
MS := TMemoryStream.Create;
Image1.Picture.Icon.SaveToStream(MS); MS.Position := 0; Image1.Picture.Icon.LoadFromStream(MS); MS.Free; |
Re: Transparenzproblem bei Manipulation eines Icons...
Ich habs jetzt auch mal über eine Componenten-Resource probiert... auch dabei kommt dann eine 16-Farb Version des korrekt geänderten Icons raus. Kann Delphi Icons denn nicht in ihrer korrekten Auflösung speichern?
Delphi-Quellcode:
WriteComponentResFile('test.bin',Image1);
ReadComponentResFile('test.bin', Image1); |
Re: Transparenzproblem bei Manipulation eines Icons...
Ich habe es jetzt gelöst...
Ich zeichne nun meine Änderungen in ein neues komplett transparantes Icon und lege dieses Icon über das vorhandene: ![]() Danach wird das Icon auf allen Systemen korrekt angezeigt ;) Testprogramm: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:54 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