Hallo,
ich brauche beruflich immer mal wieder
Stammbäume.
Zu diesem Zweck habe ich mir ein Control
TPerson
gebastelt, abgeleitet von
TBitBtn
. Darin sind zur Laufzeit jeweils die Personendaten enthalten. Diese Personen/Buttons kann ich wiederum in einer
TScrollBox
mit der Maus frei verschieben. Vielleicht ginge das eleganter. Aber als Hobbyprogrammierer fiel mir nichts besseres ein.
Ich habe den Code nun nach Jahren mal wieder vorgekramt.
Mein Ziel wäre es jetzt, zwischen den Buttons in Abhängigkeit der Verwandtschaft Linien zu ziehen. Zwischen 2 Verheirateten TPersons hätte ich gern einen Kreis.
Jetzt haben ich schon
folgenden Code entdeckt, womit das grundsätzlich klappt:
Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Pen.Style:= psSolid;
Canvas.Pen.Color:= clBlue;
Canvas.Pen.Width:= 1;
Canvas.MoveTo(Button1.Left + (Button1.Width div 2),
Button1.Top + (Button1.Height div 2));
Canvas.LineTo(Button2.Left + (Button2.Width div 2),
Button2.Top + (Button2.Height div 2));
end;
Allerdings muss ich auf Änderungen reagieren. Soll heißen:
Wenn eine TPerson verschoben wird, muss die alte Linie/der alte Kreis weg und eine neue gemalt werden (auch
hier).
Gibt es da Möglichkeiten/Ideen, ohne dass ich meinen Code vollständig neu programmieren muss?
Gruß, Alex