Image komplett löschen
-
Hallo,
ich möchte nach dem Zeichnen mit einem "LöschButton" mein Image Feld komplett löschen. Gibt es dazu eine einfache entsprechende Löschfunktion?
Gruß
Huseyin
-
z.B. so:
delete MyImage; MyImag = new TImage(/*hier ggf. Application, NULL oder 0 rein...*/);Ansonsten zeichne einfach ein weißes Rechteck von 0/0 zu MyImage->Picture->Width/MyImage->Picture->Height
-
Ich kann nur Linien zeichnen, wie bemalt man ganze Flächen?
Und zum ersten: Ok, Image löschen klappt super. Aber es dann wieder kreieren wird nichts, was muss ich bei new TImage() als Argumente einsetzen, um genau das Image wieder zu erhalten, was ich gerade entfernt hatte?
Gruß
Huseyin
-
Vielleicht ist für deine Zwecke eine PAintbox bessen. Ansonsten wird ein Rechteck mit rectangle gezeichnet
void __fastcall Rectangle(int X1, int Y1, int X2, int Y2);
void __fastcall Rectangle(TRect Rect);Siehe in der Hilfe unter TCanvas
-
Huseyin schrieb:
Und zum ersten: Ok, Image löschen klappt super. Aber es dann wieder kreieren wird nichts, was muss ich bei new TImage() als Argumente einsetzen, um genau das Image wieder zu erhalten, was ich gerade entfernt hatte?
Las das mit dem Löschen und benutzt die TCanvas::Rectangle-Version. Dazu findest du genug in der BCB-Hilfe
bis bald
akari
-
Die Builder-Hilfe ist mir leider keine große Hilfe dank meiner mangelnden Englischkenntnisse und einem wirlich großen Verständnisproblem: Wenn ich ein Rechteck zeichnen wollte mit einer vorgegebenen Funktion so würde ich das objektmäßig so machen:
Image1->Canvas-> irgendeine funktion ala moveto(x,y), oder lineto(x,y)Aber in der Hilfe sieht man immer dieses void __fastcall () ganz ohne ein zugehöriges Obejtk...was bedeutet das eigentlich und wie wird es verwendet?
Wenn ich einfach nur
void __fastcall Rectangle(int 0, int 0, int 100, int 100);einfüge gibt er mir den Compilerfehler: "Size of 'Rectangle' is unknown or zero.
Was tun? Um ein Paar erklärende Worte wäre ich dankbar, ich habe auch gerade erst mit C++ angefangen.
Gruß
Huseyin
-
Also ich mache das so:
Image1->Picture=NULL;das funktioniert super....
-
Schön, dass wenigstens einer die FAQ liest ...

Huseyin schrieb:
Die Builder-Hilfe ist mir leider keine große Hilfe dank meiner mangelnden Englischkenntnisse
Warum kaufst du dann eine englische Version des BCB?
Davon abgesehen: das Wort 'Example' wirst du doch wohl verstehen, oder? Dann klick in der Hilfe z.B. zu TCanvas::Rectangle doch einfach mal drauf.
-
@fateman: Danke wunderbar! Aber warum klappt denn das? Wie funktioniert das genau
@Jansen: Ja, das mit dem englisch war völlig übertrieben ,sry. Aber das löst leider mein oben geschildertes Problem mit der Unterscheidung der direkten Anwählung durch Obejkaufrufen durch die Methods und Properties und diesem ständigen void __fastcall nicht. Was bedeutet das letztere und wie wende ich es an?
Danke aber auf jedenfall fürs erste euch.
Gruß
HuseyinP.S.: Ich weiß, dass N00bs in Foren nerven, kenne ich aus Matheforen zu Genüge, habt Nachsicht!
-
Hallo
@fateman: Danke wunderbar! Aber warum klappt denn das? Wie funktioniert das genau
*seufz* das ist ja viel zu einfach

Es funktioniert weil die Zuweisung eigentlich ein anderes TBitmap erwartet, dessen Inhalt dann übernommen wird. Kommt NULL, wird nur der bestehende gelöscht, aber kein neuer gesetzt.
bis bald
akari
-
ok, bisschen verwirrend dieses wort "NULL" im code

Ich stöber grad in der FAQ, das ist der Hammer, danke für den Hinweis. Da steht ja alles was ich bisher so an Fragen hatte ... und natürlich auch etliches, was ich nicht verstehe

Werd mal an C++ bleiben, mit diesem Forum kann ja nichts schief gehen.
Nochmal zurück: Gibt es Nachteile, wenn man diese Funktion mit "NULL" "missbraucht", irgendwelche "Nebenwirkungen"?
-
Hallo
Nochmal zurück: Gibt es Nachteile, wenn man diese Funktion mit "NULL" "missbraucht", irgendwelche "Nebenwirkungen"?
NULL ist ein DEFINE auf den Wert 0, und das macht dann genau das was es soll.
bis bald
akari