![]() |
TImage Maske bleibt erhalten bei Zuweisung einer neuen Bitmap aus ImageList
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe ein TImage, welches ich aus einer ImageList zur Laufzeit mit unterschiedlichen Bitmaps lade.
Zum Programmstart ist die Bitmap des TImage leer. Nach der ersten Zuweisung schaut die Bitmap passabel aus. Wird nun aber eine andere Bitmap aus der ImageList zugewiesen, bleibt scheinbar die Maske der ursprünglichen Bitmap erhalten. Zumindest schaut es für mich so aus. Siehe Bilder im Anhang. Zugewiesen wird so:
Delphi-Quellcode:
Ich muss zugeben, dass ich mich mit Masken usw. bei ImageListen noch nie so wirklich beschäftigt habe.
ilStatusBitmaps.GetBitmap(SymStatusLager, imgStatus.Picture.Bitmap)
Woher kommt das und wie kriege ich das weg? |
AW: TImage Maske bleibt erhalten bei Zuweisung einer neuen Bitmap aus ImageList
Mach vorher mal ein
Delphi-Quellcode:
imgStatus.Picture.Bitmap := nil;
|
AW: TImage Maske bleibt erhalten bei Zuweisung einer neuen Bitmap aus ImageList
Danke Uwe. So geht's.
|
AW: TImage Maske bleibt erhalten bei Zuweisung einer neuen Bitmap aus ImageList
Zitat:
![]() imgStatus.Picture.Bitmap.free; Den auch ein Maske ist ein Bitmap und nur NIL gibt das Object eigentlich nicht frei oder? gruss |
AW: TImage Maske bleibt erhalten bei Zuweisung einer neuen Bitmap aus ImageList
Zitat:
Delphi-Quellcode:
Klasse verwaltet.
TPicture
Bei einer Zuweisung an die Bitmapt Eigenschaft wird nicht die Instanz übergeben, sondern intern wird der Inhalt kopiert. Siehe auch dazu die Doku ![]() Am deutlichsten sieht man es im Quelltext selber
Delphi-Quellcode:
procedure TPicture.SetBitmap(Value: TBitmap);
begin SetGraphic(Value); end; procedure TPicture.SetIcon(Value: TIcon); begin SetGraphic(Value); end; procedure TPicture.SetMetafile(Value: TMetafile); begin SetGraphic(Value); end; procedure TPicture.SetGraphic(Value: TGraphic); var GraphicClass: TGraphicClass; begin if Value <> nil then GraphicClass := TGraphicClass(Value.ClassType) else GraphicClass := nil; Load(GraphicClass, procedure (Graphic: TGraphic) begin Graphic.Assign(Value); // da wird kopiert end ); end; |
AW: TImage Maske bleibt erhalten bei Zuweisung einer neuen Bitmap aus ImageList
Zitat:
gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:29 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