Graphics::TBitmap in eigener Komponente?
-
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