einfache geometrische Formen zeichnen (Kreise/Rechtecke)



  • Hallo,
    in ein TImage lade ich eine Grafik (jpeg) und möchte mit der Maus Markierungen
    mit Kreisen bzw. Rechtecken einfügen. Diese sollen nur als Objekte existieren
    d.h. nicht in das jpeg eingefügt werden.

    Meine bisherige Lösung: im OnMouseEvent des TImage:
    1. Setzte ich den "PenPos" mit Image1->Canvas->MoveTo(X, Y);
    2. speichere den Punkt in einer TPoint variable.
    3. zeige einen Dialog an in dem ich die Koordinaten des Objekts eingebe.
    4. zeichne das Objekt mit z.B. Image1->Canvas->Rectangle bzw.
    Image1->Canvas->Ellipse
    das funktioniert zwar, sieht aber bescheiden aus.

    Ich hätte eine Lösung wie es jedes Zeichenprogramm macht (z.B. Paint)
    beim Zeichnen eines Objekts wird beim Drücken der linken Maustaste der
    Startpunkt festgehalten und das Objekt beim verschieben der Maus auch
    angezeigt!
    bis zum MouseUp-Event und das Teil ist gesetzt (was auch den
    Dialog überflüssig machen würde).
    Wie macht man sowas?



  • hawiwo67 schrieb:

    Wie macht man sowas?

    So wie du das halt geschrieben hast. Beim Drücken der Maustasten speicherst du dir die Mausposition, beim Bewegen der Maus berechnest du den Offset dazu und zeichnest das Bild entsprechend verschoben, und wenn die Maustaste losgelasen wird, bist du fertig.



  • Suchst du sowas wie rubber banding?
    http://www.functionx.com/bcb/gdi/rubberband.htm


Anmelden zum Antworten