Die Idee mit dem Code ist total nett, würde mich aber wohl wirklich überfordern.
Ich habe mal
quick & dirty etwas zusammengebastelt. Daran kann man sehen, wo ich gern hin käme. Bevor ich mich z.B. um das weitere Problem
Button2
vor/über
Button1
kümmere, hätte ich dazu mal
2 Fragen:
- Wie bekomme ich das Bild - abgesehen von der Linie - transparent?
- Gibt es eine Möglichkeit, die Linie schon während des Verschiebens nachzeichnen zu lassen?
Für "Downloadmuffel" hier mal der Code:
Delphi-Quellcode:
Procedure TForm1.Button2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Const
SC_DRAGMOVE = $F012;
Begin
If (ssLeft in Shift) Then // nur bei linker Maustaste
Begin
ReleaseCapture; // Freigeben der Maus
Button2.Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0); // Ziehen = Bewegen
Image1.Picture.Assign(nil); // Bild löschen
Image1.Transparent:= True; // ==> Funktioniert schon einmal NICHT!
Image1.Left:= Button1.Left + (Button1.Width div 2);
Image1.Top:= Button1.Top + (Button1.Height div 2);
Image1.Width:= Button2.Left - Button1.Left;
Image1.Height:= Button2.Top - Button1.Top;
Image1.Canvas.Pen.Style:= psSolid;
Image1.Canvas.Pen.Color:= clBlue;
Image1.Canvas.Pen.Width:= 5;
Image1.Canvas.MoveTo(0, 0); // wohin auch sonst
Image1.Canvas.LineTo(Image1.Width, Image1.Height);
End;
End;