Graphics::TBitmap in eigener Komponente?
-
Und wenn du das Paint() im SetBitmap() weglässt?...
-
Naja, dass gute ist jetzt, dass das Bitmap tatsächlich schon angezeigt wird,
wenn ich eins im Objektinspektor auswähle, das schlechte, dass die Fehler-
meldungen dann gar nicht mehr aufhören und ich gerade von der RESET-Taste auf
meinem Computer gebrauch machen musste...
Ich versuche das jetzt mal, indem ich die Befehle, mit denen ich das Bitmap
zeichne, gleich in SetBitmap() schreibe. Mal sehen vielleicht funktionierts
ja...MFG Aoeke
-
Ganz bestimmt nicht. Wenn der Code nicht allzulang ist, dann poste ihn doch hier mal.
-
Der ist aber lang.
Mit Header-Datei so ca. 500 Zeilen...
Aber ich probier jetzt mal noch was anderes. Wenns funktioniert schreib ichs hier rein, wenn nicht lass ichs sein.MFG Aoeke
-
Also die Meldung "Leinwand/Bild erlaubt kein Zeichen" kam wirklich nur, wenn du das Bitmap im Objektinspektor neu gesetzt hast, ja?
-
jup.
-
Ok hat nicht funktioniert... Schade.
Naja ich habe das jetzt einfach aus dem Objektinspektor rausgenommen. Wenn
das Programm läuft, kann man ja immer noch ein Bild auswählen.
Danke für deine Hilfe @ WebFritzi!MFG Aoeke
-
Ich glaub' es liegt daran:
Du weist dem FBitmap ein Bild zu und hast noch kein Objekt!!! :o
Du mußt in Constructor des Objektes ein TBitmap mit new erzeugen, natürlich auch deleten im Destructor!
Der Tip von WEBFRITZI mit csDesigning ist auch okWenns klappt, weiss keiner warum?
-
Natürlich. Das isses. Erst im Konstruktor FBitmap auf NULL setzen und dann
void __fastcall TMultiButton::SetBitmap(Graphics::TBitmap *Bitmap) { if(!FBitmap) FBitmap = new Graphics::TBitmap; FBitmap->Assign(Bitmap); Paint(); }
-
Hallo WEBFRITZI
Im SetBitmap würd' ich das nich tun!!!
(bei jedem neuen Bild wird neues Objekt erzeugt! (Wer soll die am Ende freigeben?)
new nur im Constructor der Kompo!
In SetBitmap nur Assign
[ Dieser Beitrag wurde am 22.02.2003 um 22:03 Uhr von DerAltenburger editiert. ]
-
Original erstellt von DerAltenburger:
**Hallo WEBFRITZIIm SetBitmap würd' ich das nich tun!!!
(bei jedem neuen Bild wird neues Objekt erzeugt! (Wer soll die am Ende freigeben?)
new nur im Constructor der Kompo!
In SetBitmap nur Assign
**NEIN! Schau mal das kleine if in meinem Code an wie es dich anlächelt.
-
Ok, bin halt kurzsichtig!!!
Haste wieder Recht,
Asche auf's Haupt!
-
Original erstellt von DerAltenburger:
Ok, bin halt kurzsichtig!!!Biste echt?
-
Hallo.
Großes Dankeschön euch beiden.
Ich hatte vergessen zu sagen, das ich das Bitmap schon mit new im Constructor
erstellt habe, aber womit der wahrscheinlich seine Probleme hatte war dies:FBitmap = Bitmap;
Das habe ich jetzt mal durch
FBitmap->Assign(Bitmap)
ersetzt und es funktioniert!
Also danke ihr beiden.MFG Aoeke