Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Drag&Drop aus Fenster in Windows (Koordinatenübergabe) (https://www.delphipraxis.net/26252-drag-drop-aus-fenster-windows-koordinatenuebergabe.html)

Rackergen2 20. Jul 2004 23:25


Drag&Drop aus Fenster in Windows (Koordinatenübergabe)
 
Hallo,

ich arbeite gerade an einer Bildschirmpipette. Ich hab nämlich mein Problem mit Farben (rotblind und grünschwach).
Nun möchte ich ein Objekt, welches ich aus meinem Fenster irgendwo auf den Bildschirm draggen kann.

Ich habe es mit einem Panel versucht, aber sobald ich zu draggen anfange, verwandelt sich der Cursor in diesen durchgestrichenen Kreis, also hat er kein gültiges Ziel. Die Funktion funktioniert trotzdem, ich möchte nur, dass er den richtigen Cursor zeigt...

Ich hab es inzwischen schon soweit gebracht:

Ich starte die Anwendung, bewege mene Maus über ein Feld (Pixel) und drücke <Leertaste>, um Button1Click auszuführen (Button1 ist selektiert)

Button1Click enthält folgende Procedure:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  dc: hDC;
  rgb: Integer;
  rot, blau, gruen: Integer;
begin
  try
    dc := GetDC(0);
    rgb:=GetPixel(dc,mouse.CursorPos.X,mouse.CursorPos.Y);
  finally
    ReleaseDC(0, dc);
  end;
  rot:=rgb and $FF;
  gruen:=(rgb and $FF00) div $100;
  blau:=(rgb and $FF0000) div $10000;
  messagedlg('rot: '+inttostr(rot)+#13#10+
             'grün: '+inttostr(gruen)+#13#10+
             'blau: '+inttostr(blau), mtinformation, [mbok],0);
end;
Soweit, sogut. Wie packe ich das Ganze jetzt in eine Drag&Drop-Variante? Mir wäre es ganz lieb, wenn ich den Cursor crCross benutzen könnte...

PS: Um Sicherheiten mache ich mir vorerst keine Sorgen, ich möchte nur ein Grundgerüst...

Rackergen2 21. Jul 2004 20:34

Re: Drag&Drop aus Fenster in Windows (Koordinatenübergab
 
Oder anders:

Wie kan ich dafür sorgen, dass alle Mausaktionen für kurze Zeit auf mein Programm zurückzuführen ist?

Beispiel:

Ich klickke auf einen Button und egal, wo auf dem Bildschirm ich klicke, sollen die Infos (x,y-Wert) an mein Programm übergeben werden, z.B. per MouseDown


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz