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 FadenkreuzLininen5. Sorge im Programm dafür, dass die Komponente
a) ÜBER dem TImage liegt
b) exakt die gleoiche Position/ Groesse hat6. voila
Gruss
FrankPS: die Linien können auch noch geneigt dargestellt werden, falls Du einen Winkel dazu mit berechnest.