Canvas Kreis zeichnen & löschen
-
hi,
ich zeichne nen Kreis über Canvas
Form1->Canvas->Pen->Color= clBlack;
Form1->Canvas->Pen->Mode = pmMask;Dies zeichnet nen Kreis mit schwarzem Kreisbogen und leerem "Brush", Innenleben.
Wie bekomme ich es hin, dass dieser Kreis wieder gelöscht wird.
Also nur den Kreisbogen,
wie muss ich die Funktionen Canvas->Pen->Mode benutzen, hab schon einiges durch, aber irgendwie haut das net hin, vielleicht weiß da von euch jemand rat..Wäre super!!
Mike
-
Hallo
nochmal genau mit der selben Funktion und Parametern und der Hintergrundfarbe überzeichnen
bis bald
akari
-
hab es so probiert, das tut aber sich beim löschen nix
void Kreis::clr (TCanvas *tc_) { tc_->Pen->Color = clBtnFace; tc_->Pen->Mode = pmMask; tc_->Pen->Width = 1; tc_->Ellipse (x-radius,y-radius,x+radius,y+radius); } void Kreis::zeichne (TCanvas *tc) { tc->Pen->Color = RGB(180,180,180); tc->Pen->Mode = pmMask; tc->Pen->Width = 1; tc->Ellipse (x-radius,y-radius,x+radius,y+radius); }wíe muss die syntax lauten?
kann mir jemand nen tipp geben?
-
Hallo
die Syntax ist in Ordnung, sonst würde sich ja dein Compiler beschweren.
Was du meinst ist die Semantik.Ich kann in deinem Ausschnit keinen Fehler erkennen. Überprüf mal ob clr überhaupt aufgerufen wird und ob das richtige Control übergeben wird.
bis bald
akari
-
ja, sorry, natürlich die semantik!
void __fastcall TForm1::Button4Click(TObject *Sender) { Form1->Canvas->Pen->Color = RGB(0,255,0); Form1->Canvas->Pen->Mode = pmMask; Form1->Canvas->Pen->Width = 1; Form1->Canvas->Ellipse(400,400,200,200); //Form1->Canvas->Pen->Color = clBtnFace; //Form1->Canvas->Pen->Mode = pmCopy; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button5Click(TObject *Sender) { Form1->Canvas->Pen->Color = clBtnFace; Form1->Canvas->Pen->Mode = pmMask; Form1->Canvas->Pen->Width = 1; Form1->Canvas->Ellipse(400,400,200,200); }das hier geht auch net..

-
Hallo
ich habe gerade keinen BCB hier, aber das kommt mir komisch vor
Form1->Canvas->Pen->Color= clBlack;
Form1->Canvas->Pen->Mode = pmMask;Dies zeichnet nen Kreis mit schwarzem Kreisbogen und leerem "Brush", Innenleben.
wenn du einen leeren Brush willst, must du doch eigentlich
Form1->Canvas->Pen->Color= clBlack; Form1->Canvas->Brush->Style = bsClearschreiben. Sicher das der Mode bei dir da richtig ist?
bis bald
akari
-
ja, ich kapier das ja auch net!
der Brush macht nix,
es geht ohne und mit net..des is komisch!
-
also so funzt es für die Farben schwarz und weiß
void __fastcall TForm1::Button4Click(TObject *Sender) { Form1->Canvas->Brush->Style = bsClear; Form1->Canvas->Pen->Color= clBlack; Form1->Canvas->Pen->Mode = pmCopy; Form1->Canvas->Pen->Width = 1; Form1->Canvas->Ellipse(400,400,200,200); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button5Click(TObject *Sender) { Form1->Canvas->Brush->Style = bsClear; //Form1->Canvas->Pen->Color = clBtnFace; Form1->Canvas->Pen->Color = clWhite; Form1->Canvas->Pen->Mode = pmCopy; Form1->Canvas->Pen->Width = 1; Form1->Canvas->Ellipse(400,400,200,200); }aber die farbe mit dem gleichen hintergrund geht irgendwie net, also das löschen des kreisbogens..
-
Oki,
mit obigem Code funktioniert es doch,
es muss aberForm1->Canvas->Pen->Mode = pmCopy;stehen!
Danke für deine Hilfe Akari!