Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#13

AW: Kreis/Linie zwischen 2 TButtons

  Alt 7. Okt 2020, 08:15
Willst Du die Linien irgendwie mit der Maus beeinflussen können?
Nein - wird vermutlich auch nie nötig werden.

Wie viele Möglichkeiten der Verbindungen gibt es?
- LinieLinksUntenNachRechtsOben
- LinieRechtsUntenNachLinksOben
Ich habe mal weiter probiert. Vom Grundsatz her scheine ich mit den Linien klarzukommen (Screenshot). Da ein Kind i.d.R. nicht von mehr als 2 Eltern abstammt, sind es maximal 2 Verbindungen; eher nur eine.

DENN:
- Vollkreis
- LeererKreis
Der Kreis steht als Symbol für eine Ehe/Beziehung etc. Daher eben nur eine Verbindung des Kindes zu diesem Kreis (Screenshot - wo ich gern hin will). Beim Kreis komme ich wohl an einem anderen TObject nicht vorbei. Sonst wird wohl die Rechnerei zwischen Kreis und Linien zu umfangreich.

...
Dann kannst Du den Status (Linienart) zuweisen, die Größe festlegen und die Linien werden passend gezeichnet.
Verstehe ich das richtig, dass die Linien dann "automatisch" angepasst/gezeichnet werden
Falls ja, gibt es da irgendwo Beispiele zu finden?

Wenn die Anzahl der Linien oder Figuren sehr groß werden kann oder die Linien nicht auf die Maus reagieren müssen, dann würde ich eher die Buttons anordnen, die Linien in ein Bitmap zeichnen und dieses auf den Canvas des Formulars kopieren.
Was spricht dagegen, wenn man die Linien gleich auf das Canvas malt, außer vielleicht, dass sie dann beim Verschieben mal kurz verschwinden?

P.S. Zu meinem 2. Screenshot mal die (Zusatz)Frage:
Wieso erscheinen die Linien nicht beim Programmstart? Meine Malroutine lasse ich jetzt sowohl bei FormCreate (da gibt es vermutlich die Buttons noch nicht) als auch bei FormShow aufrufen. Die Linien sehe ich aber immer erst, wenn ich einen Button bewege.
Miniaturansicht angehängter Grafiken
screenshot_02.png   screenshot_03.png  
Angehängte Dateien
Dateityp: zip _move_mit_Linie_2.zip (1,8 KB, 1x aufgerufen)
Alex Winzer
  Mit Zitat antworten Zitat