Zeichnen in einem Image-Feld...

zastu

Grünschnabel
Hallo an ALLE...
ich würde gerne verschiedene linien auf einem Image-Feld darstellen und habe dies über folgenden code bewerkställigt...
Code:
Image1->Canvas->MoveTo(20,30);
Image1->Canvas->LineTo(300,30);
Image1->Canvas->LineTo(300,420);
Image1->Canvas->LineTo(20,420);
Image1->Canvas->LineTo(20,30);

jetzt ist die Frage wie kann ich diese linien wieder verschwinden lassen.
 
Soweit ich aus dem Kopf weiß kannst du nur das ganze Image leer machen.
Ansonsten "überzeichne" die Linien einfach mit der Hintergrundfarbe.
 
Linie Zeichnen in Rot
Code:
void __fastcall TForm1::ZeichnenClick(TObject *Sender)
{
Image1->Canvas->Pen->Color = clRed;
Image1->Canvas->MoveTo(0,0);
Image1->Canvas->LineTo(100,100);
}

Linie mit der Hintergrundfarbe übermalen (weiß):
Code:
void __fastcall TForm1::LoeschenClick(TObject *Sender)
{
Image1->Canvas->Pen->Color = clWhite;
Image1->Canvas->MoveTo(0,0);
Image1->Canvas->LineTo(100,100);
}
 
hi
tipp: wenn du die punkte in variablen abspeicherst (z.B. x1,y1,x2,y2...)kannst du das noch etwas allgemeiner gestalten.
wenn die linien alle in einem bereich liegen, in dem nichts anderes wichtiges ist, kannst du auch rechtecke drüberzeichnen (oder kreise oder...):
Code:
Image1->Canvas->Pen->Color=clWhite;//rahmen weiß
Image1->Canvas->Brush->Color=clWhite;//fläche weiß
Image1->Canvas->Rectangle(x1,y1,x2,y2);/*damit wird das rechteck zwischen den punkten (x1,y1) und (x2,y2) aufgespannt.ich hoffe die reihenfolge der punkte stimmt, müsste aber auch in der quickinfo/hilfe stehen.*/
 
Zurück