Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   ImageList Bitmap hinzufügen (https://www.delphipraxis.net/108029-imagelist-bitmap-hinzufuegen.html)

Larsi 6. Feb 2008 15:21


ImageList Bitmap hinzufügen
 
hi,
wie kann ich ner imagelist n bitmap hinzufügen?
hab schon das versucht:
Delphi-Quellcode:
imagelist1.Add(Image1.Picture.Bitmap, Und wass muss da jetzt hin???);
aber als zweiter parameter wird irgendne mask erwartet! was muss ich da hinschreiben? Hoffe ihr könnt mir helfen :)

MFG Lars Wiltfang


es geht übrigens um ein bitmap was 1650 x 1050 groß ist. geht das überhaupt in ner imagelist?

Xong 6. Feb 2008 15:38

Re: ImageList Bitmap hinzufügen
 
Aus der Delphi-Hilfe:
Zitat:

function Add(Image, Mask: TBitmap): Integer;

Mit der Methode Add können Sie Bilder zusammen mit ihren Masken einer Bilderliste hinzufügen. Add liefert bei Erfolg den Index des hinzugefügten Bildes, ansonsten -1 zurück. Wenn die Eigenschaft Masked der Bilderliste den Wert False hat, wird das zweite Bitmap ignoriert. Es kann auf nil gesetzt werden.
Und weiter:
Zitat:

Durch Setzen der Eigenschaft Masked auf True legen Sie fest, daß die Bilder mit Masken kombiniert werden. Der Maskenbereich des Bitmaps wird transparent gezeichnet oder durch die in der Eigenschaft BkColor angegebenen Farbe ersetzt.

Masked signalisiert, ob die Bilderliste Masken zur Kombination mit den Bildern speichert. Die Eigenschaft ImageType bestimmt dabei, ob das Bild oder die Maske gezeichnet werden soll.
Ich will ja nicht meckern, aber das war wirklich nicht schwer zu finden... :P

EDIT: Es bleibt natürlich die Frage, warum du eine ImageList brauchst, wenn du nur ein Bild verarbeitest!?

Larsi 6. Feb 2008 18:25

Re: ImageList Bitmap hinzufügen
 
ich kapiers nicht :( wenn ich das jez mache egal ob masked true oder false ist dad bild in der lstview aus der imagelist schwarz weiß!!! Bitte um ganz schnelle hilfe!

Matze 6. Feb 2008 19:52

Re: ImageList Bitmap hinzufügen
 
Lass die Maske einfach weg, dann geht's wie du es möchtest (ich habe es getestet):

Delphi-Quellcode:
ImageList1.Add(Image1.Picture.Bitmap, nil);

Larsi 6. Feb 2008 19:55

Re: ImageList Bitmap hinzufügen
 
oh danke danke danke matze :) :) :) Jetzt gehts endlich nach ner halben Stunde rumprobieren. Hatte das mit dem nil ganz vergessen :) Hat mich echt n Stück weitergebracht für mein programm!!!

Nochmal ne kleine off topic frage: wie kann ich das ganze auf stretch umstellen und auch wieder rückgängig machen?

Xong 7. Feb 2008 07:22

Re: ImageList Bitmap hinzufügen
 
Zitat:

Zitat von Larsi
Hatte das mit dem nil ganz vergessen :)

So beachtest du also meine Hilfe... :cry:
Zitat:

Zitat von Larsi
wie kann ich das ganze auf stretch umstellen und auch wieder rückgängig machen?

Was meinst du mit "stretch"?
Die Eigenschaft das Bildes? Die kannst du auf True oder Fals setzen.

Larsi 7. Feb 2008 11:59

Re: ImageList Bitmap hinzufügen
 
Ja, auch danke für deine Hilfe, Xong! :) :) :)
Mit Stretch meine ich wie ich der Imagelist die Eigenschaft Stretch geben kann oder reicht es wenn das Ausgangsbild Stretch ist? Bei mir nicht! Und ich finde nicht dass man dafür einen neuen Thread aufmachen muss da sich dass ja noch auf die ursprnünlgiche Frage bezieht! (Nur für die Leute, die gleich vielleicht rummeckern :) )
Aber in der Listview finde ich auch nicht die eigenschaft alles auf stretch zu setzen und auch in der Imagelist nicht!

Xong 7. Feb 2008 12:15

Re: ImageList Bitmap hinzufügen
 
Zitat:

Zitat von Larsi
Mit Stretch meine ich wie ich der Imagelist die Eigenschaft Stretch geben kann oder reicht es wenn das Ausgangsbild Stretch ist?

Du verwaltest mit der Liste doch nur die Bilder. Dort wo du die Bilder ausgibst, musst du die Eigenschaft Stretch setzen!

Larsi 7. Feb 2008 12:19

Re: ImageList Bitmap hinzufügen
 
In der Oh steht ja, dass das zweite Bitmap ignoriet wird wenn man das auf nil setzt, oder? Hab jetzt echt keine Ahnung was da sonst hin soll! Da kommr ja nicht nur eins sondern vielleicht Hundert Bilder! Bitte helft mir

Dani 7. Feb 2008 13:03

Re: ImageList Bitmap hinzufügen
 
Zitat:

Zitat von Online-Hilfe
TImageList repräsentiert eine Kollektion von Bildern mit identischer Größe. Jedes Bild kann über seinen Index referenziert werden.

Beschreibung

Bilderlisten dienen dazu, große Mengen von Symbolen oder Bitmaps zu verwalten. Alle Bilder einer Bilderliste befinden sich in einem einzigen großen Bitmap mit Bildschirmformat. Eine Bilderliste kann auch ein monochromes Bitmap mit Masken enthalten, das dazu dient, Bilder transparent zu zeichnen.

In einer Bilderliste finden sehr viele Bilder gleicher Größe Platz, die jeweils über ihren Index (0 bis n - 1) abgerufen werden können. Dazu gehören Methoden für einfaches Speichern und Zeichnen der enthaltenen Bilder.

Ist jetzt klarer, wozu der zweite Parameter da ist? :mrgreen:

Larsi 7. Feb 2008 18:10

Re: ImageList Bitmap hinzufügen
 
ja jetzt weiß ich was nil macht aber ich möchte ja eigentlich wissen was ist statt dem nil hinsetzen muss! :) was muss ich statt nil da hinschreiben:
1. verschiedene bilder (mehr als zwei^^)
2. in der listview ein bzw auch mehrere farbiger bild sehen
3. das wars

Die Muhkuh 7. Feb 2008 18:14

Re: ImageList Bitmap hinzufügen
 
Mehrere Bilder: Einfach den entsprechenden Code mehr mal ausführen.
Zur Listview: Den richtigen ItemIndex zuweisen.

Larsi 8. Feb 2008 14:27

Re: ImageList Bitmap hinzufügen
 
Was ist der entsprechende code? Was muss statt dem nil da hin wenn es mehrere frabige bilder sein sollen?

Kann man eigentlich dass mit der gleichen größe entschärfen? bei meinem screenshotmaker haben die natürlich ganz verschiedene größen :)

Die Muhkuh 8. Feb 2008 14:33

Re: ImageList Bitmap hinzufügen
 
Mensch, Du weißt ja wie man Sachen in eine ImageList einfügt, steht ja im ersten Post. Das der zweite Parameter nil sein muss, steht im Post von Dani.

Jetzt Kopf anstrengen und den Code, der was in die ImageList hinzufügt, mehrmals ausführen.

DeddyH 8. Feb 2008 14:39

Re: ImageList Bitmap hinzufügen
 
Oder die ImageList ganz vergessen und eine eigene "Bilderverwaltungsklasse" bauen. So wird das ja anscheinend schonmal nix.

Larsi 8. Feb 2008 14:40

Re: ImageList Bitmap hinzufügen
 
Und was ist sone "Bilderverwaltungsklasse"?

Die Muhkuh 8. Feb 2008 14:42

Re: ImageList Bitmap hinzufügen
 
Eine Klasse, die die Bilder verwaltet?

Stichworte hierzu wären:

Delphi-Referenz durchsuchenTList, besser aber Delphi-Referenz durchsuchenTObjectList
Hier im Forum suchentypisierte Liste
Gibt sogar ein Tutorial dazu.

Neutral General 8. Feb 2008 14:46

Re: ImageList Bitmap hinzufügen
 
Ach das is doch Quatsch wenn ihr ihn jetzt ne eigene Klasse dafür schreiben lasst -.-^^ (Ok zum lernen kanns nicht schaden...)

Damit das hier mal ein Ende findet:

Delphi-Quellcode:
// EIN (1) Bild zur ImageList hinzufügen
ImageList1.Add(Image1.Picture.Bitmap, nil);
mehrere? :?:

:arrow:

Delphi-Quellcode:
// n Bitmaps zur ImageList hinzufügen
ImageList1.Add(Bitmap1, nil);
ImageList1.Add(Bitmap2, nil);
ImageList1.Add(Bitmap3, nil);
//...
ImageList1.Add(BitmapN, nil);
Das ganze geht je nachdem auch mit einer Schleife:


Delphi-Quellcode:
// n Bitmaps zur ImageList hinzufügen
for i:= 1 to n do
  ImageList1.Add(Bitmap[i], nil);
:!:

Jetzt alles klar? :wiejetzt:

Gruß
Neutral General

DeddyH 8. Feb 2008 15:06

Re: ImageList Bitmap hinzufügen
 
Und was ist mit der unterschiedlichen Größe?

Die Muhkuh 8. Feb 2008 15:08

Re: ImageList Bitmap hinzufügen
 
Zitat:

Zitat von DeddyH
Und was ist mit der unterschiedlichen Größe?

Die funktionieren bei Michaels Methode nicht bzw. nur sehr bedingt.

DeddyH 8. Feb 2008 15:10

Re: ImageList Bitmap hinzufügen
 
Ja eben, darauf wollte ich ja hinaus. Da fände ich es einfacher, mit einer TObjectList zu arbeiten, als Bitmaps irgendwie so zu stretchen, dass sie in die ImageList passen :mrgreen:

Die Muhkuh 8. Feb 2008 15:11

Re: ImageList Bitmap hinzufügen
 
Man könnte natürlich auch die Standardgröße auf z.B. 10000x10000 setzen und die Bilder zentriert einfügen, das ginge auch noch. :mrgreen:

Aber eine eigene Klasse wäre hier nur vorteilhaft.

Ein Nachteil wäre nur, dass Larsi das vielleicht noch nicht hinbekommt.

DeddyH 8. Feb 2008 15:21

Re: ImageList Bitmap hinzufügen
 
Zitat:

Zitat von Die Muhkuh
Man könnte natürlich auch die Standardgröße auf z.B. 10000x10000 setzen

Es soll noch Leute geben, die keine 2 GB RAM im Rechner stecken haben :zwinker:

Die Muhkuh 8. Feb 2008 15:25

Re: ImageList Bitmap hinzufügen
 
Zitat:

Zitat von DeddyH
Zitat:

Zitat von Die Muhkuh
Man könnte natürlich auch die Standardgröße auf z.B. 10000x10000 setzen

Es soll noch Leute geben, die keine 2 GB RAM im Rechner stecken haben :zwinker:

Mag sein, aber das steht hier nicht zur Debatte. :mrgreen:

Hier und hier wäre auch noch etwas, falls das da oben nicht reicht oder unverständlich ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:36 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