Einzelnen Beitrag anzeigen

Schwedenbitter

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

AW: Kreis/Linie zwischen 2 TButtons

  Alt 6. Okt 2020, 13:32
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:
  1. Wie bekomme ich das Bild - abgesehen von der Linie - transparent?
  2. 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;
Miniaturansicht angehängter Grafiken
screenshot_01.png  
Angehängte Dateien
Dateityp: zip move_mit_Linie.zip (1,8 KB, 4x aufgerufen)
Alex Winzer
  Mit Zitat antworten Zitat