Linie zeichen/verschieben



  • Hallo Leute,

    sagt mal wie kann ich ein Linie zeichnen und sie dann mit der Maus verschieben?

    Sie soll auf einer Kennlinie (Bild) verschiebbar sein, sodass man eine Hilfe für das Ablesen hat.

    Gruß

    Carsten



  • Hallo

    Linien zeichnen kannst du z.B. mit TCanvas::LineTo.
    Linien verschieben ist schon etwas schwerer, dazu must du die Mouse-Events der Komponente einsetze, in die du die Linie gezeichnet hast.

    bis bald
    akari



  • Als "Hilfe zum Ablesen" mach ich immer statt Mauscursor ein Fadenkreuz (übers ganze Bild).

    Hast Du die Kennlinie in einem TImage? Dann gehts ev. so:

    1. In Form ein TImage mit dem Bild der Kennlinie
    2. Bastel eine Komponente von TGraphicControl abgeleitet
    3. Überschreibe darin MouseMove
    setze bei MouseMove 2 Variablen (FXCursor, FYCursor), die Member sind
    rufe am Ende Invalidate() auf
    4. Überschreibe Paint
    zeichne darin die FadenkreuzLininen

    5. Sorge im Programm dafür, dass die Komponente
    a) ÜBER dem TImage liegt
    b) exakt die gleoiche Position/ Groesse hat

    6. voila

    Gruss
    Frank

    PS: die Linien können auch noch geneigt dargestellt werden, falls Du einen Winkel dazu mit berechnest.


Anmelden zum Antworten