AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TImageList.AddMasked

Ein Thema von Andreas Leix · begonnen am 10. Sep 2012 · letzter Beitrag vom 10. Sep 2012
Antwort Antwort
Andreas Leix

Registriert seit: 28. Apr 2008
31 Beiträge
 
#1

TImageList.AddMasked

  Alt 10. Sep 2012, 10:30
Hallo !

Bin gerade dabei ein Projekt von Delphi 2009 auf DelphiXE2 zu bringen.
Bin nun auf ein Problem mit TImageList gestoßen.
Ich übertrage einzelne Bitmaps zur Laufzeit von einer Image-list auf eine andere.
Das funktioniert unter Delphi 2009 einwandfrei:

Code:
function Uebertrage ( Source,Target: TImageList; SourceIndex: integer ): integer;
{ Image3: TImage ist auch noch deklariert und initialisiert}
begin
  Source.GetBitmap(sourceIndex, Image3.Picture.Bitmap );
  Image3.Picture.Bitmap.TransparentMode := tmAuto;
  Image3.Picture.Bitmap.TransparentColor:= clFuchsia;
  // zur kontrolle eingebaut: Image3.Picture.SaveToFile('D:\temp\bild'+inttoStr(sourceindex)+'.bmp');
  Result:= Target.AddMasked(Image3.Picture.Bitmap,clFuchsia );  
end;
Unter DelphiXE2 schauen die übertragenen Bitmaps in Target-ImageList aus, alsob nur die Maske übertragen worden wäre.

Kennt jemand Probleme mit TImageList.AddMasked unter XE2,
oder hat jemand Hinweise zu Änderungern bei TImageList in XE2 ?

Vielen Dank für jeden Hinweis !
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: TImageList.AddMasked

  Alt 10. Sep 2012, 10:51
ist im Quellbild clFuchsia noch auf [0,Height-1] vorhanden?
Gegf. kommt die Methode für Dich in Frage?
Delphi-Quellcode:
function Uebertrage ( Source,Target: TImageList; SourceIndex: integer ): integer;
var
 ico:TIcon;
begin
  ico :=TIcon.Create;
  try
  Source.GetIcon(sourceIndex, Ico );
  Result:= Target.AddIcon(Ico);
  Showmessage(IntToStr(Result));
  finally
    ico.Free;
  end;
end;
Zugriff auf das Bitmap besteht trotzdem
Delphi-Quellcode:
procedure TForm6.Button1Click(Sender: TObject);
var
 bmp:TBitmap;
begin
    Uebertrage(Imagelist1,Imagelist2,0);
    bmp:=TBitmap.Create;
    try
      Imagelist2.GetBitmap(0,bmp);
      Canvas.Draw(0,0,bmp);
    finally
      bmp.Free;
    end;
    action1.ImageIndex :=0;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Andreas Leix

Registriert seit: 28. Apr 2008
31 Beiträge
 
#3

AW: TImageList.AddMasked

  Alt 10. Sep 2012, 11:29
Hi Bummi !

Die Vorhgehensweise mit GetIcon / AddIcon funktioniert !!!!
Vielen vielen Dank für Deine Antwort !!
Grüße Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz