Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Checkbox checken in anderem Programm (https://www.delphipraxis.net/104116-checkbox-checken-anderem-programm.html)

BloodySmartie 27. Nov 2007 17:37


Checkbox checken in anderem Programm
 
Hallo liebe Community!

Mir kam heute eine tolle Idee für ein größeres Projekt. Ich bin gerade dabei, ein paar grundlegende Informationen zu sammeln. An sich wird es nicht mal schwer zu implementieren sein. Allerdings gibts da etwas, mit dem ich einfach keine Erfahrung habe: Ich möchte Text in ein Eingabefeld in einem anderen Programm schreiben oder eine Checkbox an/abkreuzen. Ich könnte mir vorstellen, dass das über Messages und die Handles der entsprechenden Steuerelemente geht, aber ich hab keine Ahnung davon, wie. :gruebel: :gruebel:

Das Handle der zu manipulierenden Komponente würde ich gern per Mausklick abfragen(wegen der Benutzerfreundlichkeit). Geht das?

Könnt Ihr mir vielleicht ein paar Tipps geben? Ich bin für jede Hilfe dankbar.

Viele Grüße

BloodySmartie

bitsetter 27. Nov 2007 17:49

Re: Checkbox checken in anderem Programm
 
Zitat:

Zitat von BloodySmartie
Ich möchte Text in ein Eingabefeld in einem anderen Programm schreiben oder eine Checkbox an/abkreuzen. Ich könnte mir vorstellen, dass das über Messages und die Handles der entsprechenden Steuerelemente geht, aber ich hab keine Ahnung davon, wie.

Hallo,

für die Checkbox müsste es so gehen:
Delphi-Quellcode:
SendMessage(..., BM_SETCHECK, 1, 0);//true
SendMessage(..., BM_SETCHECK, 0, 0);//false

sirius 27. Nov 2007 17:50

Re: Checkbox checken in anderem Programm
 
Zitat:

Zitat von BloodySmartie
Hallo liebe Community!
Mir kam heute eine tolle Idee für ein größeres Projekt. Ich bin gerade dabei, ein paar grundlegende Informationen zu sammeln. An sich wird es nicht mal schwer zu implementieren sein. Allerdings gibts da etwas, mit dem ich einfach keine Erfahrung habe: Ich möchte Text in ein Eingabefeld in einem anderen Programm schreiben oder eine Checkbox an/abkreuzen. Ich könnte mir vorstellen, dass das über Messages und die Handles der entsprechenden Steuerelemente geht, aber ich hab keine Ahnung davon, wie. :gruebel: :gruebel:

Das hast du richtig erfasst :zwinker:
Die eine Message wäre BM_SetCheck
Und die andere sieht nach WM_setText aus.

Zitat:

Das Handle der zu manipulierenden Komponente würde ich gern per Mausklick abfragen(wegen der Benutzerfreundlichkeit). Geht das?
windowfrompoint(getcursorpos)

BloodySmartie 27. Nov 2007 17:54

Re: Checkbox checken in anderem Programm
 
Das ging ja fix, danke danke danke :hello:

Kann ich denn "windowfrompoint" auch dafür verwenden, das Handle von einem Steuerelement, wie nem Button oder Textfeld zu bekommen?

Larsi 27. Nov 2007 17:54

Re: Checkbox checken in anderem Programm
 
hi,

wenn ich folgendes eingebe:
Delphi-Quellcode:
windowfrompoint(getcursorpos)
kommen da fehler muss man da eine unit einbinden???


MFG Lars W.

bitsetter 27. Nov 2007 17:57

Re: Checkbox checken in anderem Programm
 
Zitat:

Zitat von Larsi
hi,

wenn ich folgendes eingebe:
Delphi-Quellcode:
windowfrompoint(getcursorpos)
kommen da fehler muss man da eine unit einbinden???


MFG Lars W.

Versuche mal:
Delphi-Quellcode:
var
  Wnd: HWND;
begin
  Wnd:= Windows.WindowFromPoint(mouse.CursorPos);

Larsi 27. Nov 2007 17:58

Re: Checkbox checken in anderem Programm
 
und wie kann ich den namen auslesen

sirius 27. Nov 2007 17:59

Re: Checkbox checken in anderem Programm
 
sorry:
Delphi-Quellcode:
var pos:TPoint;
...
getcursorpos(pos);
windowfrompoint(pos);
..wenn mans nicht täglich macht
(Unit windows)

Larsi 27. Nov 2007 18:01

Re: Checkbox checken in anderem Programm
 
und was schreibt man statt der drei punkte bei dem sendmessge reim???

sirius 27. Nov 2007 18:02

Re: Checkbox checken in anderem Programm
 
Zitat:

Zitat von Larsi
und wie kann ich den namen auslesen

Delphi-Quellcode:
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var pos:Tpoint;
    text:array[0..49] of char;
begin
  getcursorpos(pos);
  sendmessage(windowfrompoint(pos),wm_gettext,50,integer(@text));
  edit1.text:=text;
end;
Einfach die Maus vom Formular gedrückt zu einem anderen Fenster ziehen und dann loslassen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 Uhr.
Seite 1 von 2  1 2      

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