AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia TImage mit Bild aus ImageList füllen
Thema durchsuchen
Ansicht
Themen-Optionen

TImage mit Bild aus ImageList füllen

Ein Thema von Jazzman_Marburg · begonnen am 12. Jun 2011 · letzter Beitrag vom 22. Mär 2013
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#1

TImage mit Bild aus ImageList füllen

  Alt 12. Jun 2011, 12:30
Hallo Gemeinde.
Ich stehe mir wieder mal selbst auf den Füßen:
Ich möchte zur Laufzeit einer TImage-Komponente ein Bild aus einer ImageList zum Anzeigen übergeben. Ich dachte so müßte es klappen:

myImageList.GetBitmap(0, myImage.Picture.Bitmap); Aber es tut sich nix -- der Code wird durchlaufen aber ich sehe kein Bild. Auch ein myImage.Repaint hilft nicht weiters. In der ImageList befindet sich nur ein Bitmap (256x256 Pixel groß).

Was mache ich falsch? Habt ihr eine Idee?

Vielen Dank & Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TImage mit Bild aus ImageList füllen

  Alt 12. Jun 2011, 12:32
Schau dir mal TImageList.Draw() an
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#3

AW: TImage mit Bild aus ImageList füllen

  Alt 12. Jun 2011, 12:44
Hallo!

Nützt auch nix:

myImageList.Draw(myImage.Picture.Bitmap.Canvas,0,0,0);

Ich stehe wirklich auf dem Schlauch.

Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#4

AW: TImage mit Bild aus ImageList füllen

  Alt 12. Jun 2011, 13:07
Kommado zurück!
Es funtioniert sehr wohl:

myImageList.Draw(myImage.Picture.Bitmap.Canvas,0,0 ,0);

(Ich hatte gerade intern ein kleines techniches Problem - vulgo: "Tomaten auf den Augen").

Aber trotzdem hätte ich eine kleine Nachfrage:

Weshalb klappt folgendes nicht:
myImageList.GetBitmap(0, myImage.Picture.Bitmap);

Ich frage deshalb nach, weil ich zu einem späterem Zeitpunkt die Bitmap in myImage weitergeben muß -- aber mit
myImageList.Draw(myImage.Picture.Bitmap.Canvas,0,0 ,0);
habe ich ja keine Bitmap. Sondern nur eine Zeichnung auf dem Canvas des myImages.

Vielen Dank
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: TImage mit Bild aus ImageList füllen

  Alt 12. Jun 2011, 13:11
myImageList.GetBitmap(0, myImage.Picture.Bitmap);
Genau so sollte das eigentlich funktionieren.
So mache ich das auch, allerdings benutze ich ImageList.GetIcon( Index, Image.Picture.Icon ); , weil dann auch das mit der Transparenz besser klappt.
Intern wird aber letztendlich immer TPicture.SetGraphic aufgerufen. Somit spielt es eigentlich keine Geige.

Das Malen auf dem Canvas halte ich hier eher für ungeschickt, da man dieses ja ständig (selber) wiederholen müsste.

Sonst häng doch mal eine kleines Beispiel-Projekt an, dann schau ich da mal drüber.
Kann eigentlich nur eine Kleinigkeit sein
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: TImage mit Bild aus ImageList füllen

  Alt 12. Jun 2011, 13:18
ImageList1.Draw(Image1.Picture.Bitmap.Canvas, 0, 0, 0); .
Kann garnicht funktionieren, wenn noch kein Bitmap im Picture drin war,
denn der Lesezugriff auf Picture.Bitmap würde in diesem Fall ein neue TBitmap erstellen, mit den Seitenlängen von 0.
Und wenn man in das Bild etwas reinmalt, dann sieht man natürlich nicht viel.

ImageList1.GetBitmap(0, Image1.Picture.Bitmap); .
Geht bei mir ohne Probleme, da GetBitmap die Größe des TBitmap anpaßt.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#7

AW: TImage mit Bild aus ImageList füllen

  Alt 12. Jun 2011, 14:30
Hallo zusammen!

Ja, es funktionert tatsächlich auch mit:

ImageList1.GetBitmap(0, Image1.Picture.Bitmap);

Ich hab keine Ahnung, was da vorher so schief war: Ich habe jedenfalls zwischenzeitlich die Größen angepasst. Weiss nicht ob das der Grund war...

Vielen Dank an alle!

Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
H3llsing

Registriert seit: 12. Nov 2008
96 Beiträge
 
Delphi 2010 Enterprise
 
#8

AW: TImage mit Bild aus ImageList füllen

  Alt 5. Okt 2012, 11:43
Hallo zusammen,

ich habe das gleiche Problem und nix funktioniert.

Ich verwende ein normales TImage unter Delphi2010 mit einer TImagelist die PNG dateien mit 32 farbtiefe und transparent flag gesetzt.
Nach setzten mit ImageList1.GetBitmap(0, Image1.Picture.Bitmap); wird nur die Bitmap transparent, ist das transparent flag aus wird das bitmap nach dem belegen schwarz.

hat irgendjemand einen Rat für mich ?!
  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
 
#9

AW: TImage mit Bild aus ImageList füllen

  Alt 5. Okt 2012, 11:55
GetIcon ....
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
H3llsing

Registriert seit: 12. Nov 2008
96 Beiträge
 
Delphi 2010 Enterprise
 
#10

AW: TImage mit Bild aus ImageList füllen

  Alt 7. Okt 2012, 13:43
Es blieb auch mit getIcon schwarz.

Das Problem lag an der einstellung ImageType der Timagelist!
irgendwie stand sie auf itMask, sie muss aber auf itImage stehen =).

Und mit getIcon wird der hintergrund auch transparent!
Vielen Dank bummi =)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:28 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