File Drag Drop Aber Richtig ?

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

File Drag Drop Aber Richtig ?

Beitrag von corpsman »

Servus zusammen,

ich habe ein Formular auf das ich via Drag & Drop Dateien ziehen Will. Der hier gezeigte Code Schnipsel funktioniert unter Windows ist aber nicht gerade Schön:

Code: Alles auswählen


Function PointInRect(P: Tpoint; R: TRect): Boolean;
Begin
  result := (p.x >= r.Left) And (p.x <= r.Right) And
    (p.y >= r.Top) And (p.y <= r.Bottom);
End;

Procedure TForm1.FormDropFiles(Sender: TObject; Const FileNames: Array Of String
  );
Var
  p: Tpoint;
Begin
  p := Mouse.CursorPos;
  // Die Konstanten wurden empirisch ermittelt
  p.x := p.x - left - 8;
  p.y := p.y - Top - (form1.Height - form1.ClientHeight) - 31;
  If PointInRect(p, rect(edit4.left, edit4.top, edit4.Left + edit4.Width, edit4.Top + edit4.Height)) Then Begin
    Edit4.text := FileNames[0];
  End;
  If PointInRect(p, rect(edit5.left, edit5.top, edit5.Left + edit5.Width, edit5.Top + edit5.Height)) Then Begin
    Edit5.text := FileNames[0];
  End;
End; 
Weis jemand eine Ordentliche Variante wie ich raus kriege auf welcher Komponente das File Losgelassen wurde um es dann korrekt zu zu ordnen ?
--
Just try it

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: File Drag Drop Aber Richtig ?

Beitrag von Michl »

Deine Idee ist prinzipiell richtig. Um die LCL zu nutzen, schaue mal in die letzten Zeilen vom Wikibeispiel: https://wiki.freepascal.org/Drag_and_Dr ... g_des_Drop

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: File Drag Drop Aber Richtig ?

Beitrag von corpsman »

:lol:

screentoClient das hatte mir gefehlt. Danke das hätte man auch ergoogeln können :roll:
--
Just try it

Antworten