Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

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 Text an Eingabezeile schicken (https://www.delphipraxis.net/34130-text-eingabezeile-schicken.html)

Aike 25. Nov 2004 18:55

Re: Text an Eingabezeile schicken
 
Gut, ähm, dann stellt sich die Frage, wie OnHotKey zu deklarieren ist. Es ist keine procedure, also fällt "procedure (T)SysHot.OnHotKey();" weg. "SysHotKey.OnHotKey:=procedure1" geht auch nicht, genauso wenig wie "SysHotKey.OnHotKey:=Button2Click(Sender);".
Diese Möglichkeiten kenne ich und die haben bis jetzt auch immer gereicht. Wie muss ich das denn aufrufen? :?:

btw: ist echt schade, dass es dazu noch nix anderes im Forum gibt (OnHotKey). Habe nur einen Thread gefunden, in dem jemand die Möglichkeit anbot, F-Tasten auf Buttons zu legen, aber ich brauche auch STRG etc. :cyclops:

Dani 25. Nov 2004 19:34

Re: Text an Eingabezeile schicken
 
Joah... TSyshotKey ist eine plazierbare nicht-visuelle Komponente, du musst sie nur installieren :)

Aike 25. Nov 2004 20:41

Re: Text an Eingabezeile schicken
 
Also ich hab die Komponente installiert, indem ich ...
Komponente -> Neue Komponente -> Vorfahrtyp=TCustomHotKey [ComCtrls] -> KlassenName=SysHotKey -> (Palettenseite=Beispiele) -> Name der Unit=SysHotKey.pas

Aber es tritt immer noch der selbe Fehler auf.

[edit]Ich bin doof. Hab vergessen, die Komponente zu platzieren ;D Aber was mache ich jetzt damit? Die hat keine Ereignis-Methoden und keine sinnvollen Eigenschaften :-/[/edit]

[edit2]Interessant wäre auch die Möglichkeit, "Enter" an die Anwendung zu schicken.
"SendKey1.Keys:=vk_return;" geht nicht, weil vk_return ein Integer ist. Oder soll ich doch (später) die Buttons des Clients herausfinden und dann einen Schalter "drücken"?[/edit2]

Dani 25. Nov 2004 21:02

Re: Text an Eingabezeile schicken
 
Komponenten installierst du so:

Komponente -> Komponente installieren -> in neues Package

die Taste Enter kannst du entweder mit #13 oder als '[enter]' senden.

Aike 25. Nov 2004 21:07

Re: Text an Eingabezeile schicken
 
Ok, die Komponente ist installiert, zumindest in der Palette verfügbar, aber was fange ich jetzt damit an?
Langsam fühle ich mich echt scheiße :-/

Ah ja,
Delphi-Quellcode:
SendKey1.Keys:=#13;
SendKey1.TitleText:='Offenbarung';
SendKey1.execute;
... funktioniert sehr schön, allerdings kann ich das nicht zwei Mal hintereinander ausführen (hat jedenfalls keinen Effekt). Auch mit einer Delay dazwischen (500=500ms?) kann ich keinen Effekt erzielen. Eigentlich hat Delay überhaupt keinen Effekt, nichtmal bei 5000.
Ich könnte aber einen Timer einbauen! *kniffel*

[edit]Mit einem Timer gelöst. Aber wozu ist dann die Delay-Funktion? :idea: [/edit]

Aike 12. Dez 2004 17:21

Re: Text an Eingabezeile schicken
 
Hm, Dani, kannst du mir noch bei dem GlobalHotKey helfen? Dann hätte ich 's eigentlich schon fast geschafft :drunken:

Dani 13. Dez 2004 19:30

Re: Text an Eingabezeile schicken
 
Joah, mal schauen...

- Deine SysHotKey Komponente auf dem Formular platzieren (Active = true).
- Im OnHotKey Event der Komponente deinen Code einfügen.
- Im OnCreate des Formulars einen Hotkey hinzufügen
Delphi-Quellcode:
 SysHotKey1.AddHotKey(vkB, [hkAlt, hkCtrl]);
- Compilieren

Aike 13. Dez 2004 20:36

Re: Text an Eingabezeile schicken
 
Ich hab die HotKey-Komponente platziert, aber die hat keine Events und auch keine Active-Eigenschaft. Hab ich die vielleicht falsch installiert?

[edit]Ich antworte zu schnell. Hab 's nochmal neu installiert und jetzt geht 's. Ich werde morgen daran rumschrauben ;-)
Na ja, aber ein OnHotKey gibt 's nicht. Ich sehe nur OnChange, OnContextPopUp, OnEnter, OnExit, OnMouseDown/Up/Move, PopupMenu.[/edit]

Aike 5. Feb 2005 00:35

Re: Text an Eingabezeile schicken
 
Gibt es eine Möglichkeit, "SendKey1.TitleText:='Offenbarung';" so zu umgehen, dass ich da ein Handle reinschreiben kann? Mir ist aufgefallen, dass es vorkommen kann, dass mehr als eine Anwendung mit dem selben Titil gestartet ist. Das Handle kriege ich ja recht unkompliziert mit "GetForegroundWindow".

Dani 5. Feb 2005 12:40

Re: Text an Eingabezeile schicken
 
Du musst die Eigenschaft TitleText nicht ausfüllen. Lass sie leer, dann wird der Text an das Fenster geschickt, das aktuell den Fokus hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 Uhr.
Seite 4 von 4   « Erste     234   

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