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/)
-   -   Eingabe oder Tastendruck im Form pauschal abfragen (https://www.delphipraxis.net/186173-eingabe-oder-tastendruck-im-form-pauschal-abfragen.html)

khh 10. Aug 2015 15:38

Eingabe oder Tastendruck im Form pauschal abfragen
 
Hallo zusammen,

ich möchte ein geöffnetes Form nach einer gewissen Zeit per Timer schließen, wenn der User in dieser Zeit keine Eingabe vornimmt.
Gibt es ein Event, welches ich global abfragen kann, oder muss ich alle auf der Form befindlichen Bedienelemente einzeln behandeln?


Ich danke euch

mm1256 10. Aug 2015 15:52

AW: Eingabe oder Tastendruck im Form pauschal abfragen
 
Code:
TForm.KeyPreview := true;
und dann nach Belieben

TForm.OnKeyDown oder
TForm.OnKeyUp oder
TForm.OnKeyPressed

haentschman 10. Aug 2015 15:54

AW: Eingabe oder Tastendruck im Form pauschal abfragen
 
Hallo...:P

Deine Freunde sind FormKeyDown bzw. FormKeyPress in Verbindung mit KeyPreview = True;

khh 10. Aug 2015 16:31

AW: Eingabe oder Tastendruck im Form pauschal abfragen
 
ich danke euch,
hätte ich ja auch selbst drauf kommen können ;-)

Aviator 10. Aug 2015 23:05

AW: Eingabe oder Tastendruck im Form pauschal abfragen
 
Oder vielleicht auch hiermit: LastInputInfo
Hier noch ein Topic aus der DP, bei der auch schonmal jemand damit gearbeitet hat: Letzte Eingabe ermitteln

khh 11. Aug 2015 15:48

AW: Eingabe oder Tastendruck im Form pauschal abfragen
 
mh, keydown etc. funktioniert leider nicht, da die Buttons ja per Touchscreen, sprich Mausklick bedient werden.
Also doch jedes Element auf OnMousDown abfragen?

EDIT: LastInputInfo sieht gut aus, aber wo ist TLastInputInfo definiert ?

hoika 11. Aug 2015 16:00

AW: Eingabe oder Tastendruck im Form pauschal abfragen
 
Hallo,

die verlinkten Beispiele ist ein bisschen overdressed.

http://www.experts-exchange.com/Prog..._21838717.html
http://forum.codecall.net/topic/6014...-delphi-codes/

Aber das Stichwort ist Hook, es muss hier nat. nicht gleich ein systemweiter Hook per Dll sein,
es reicht auch ein App-Hook.

http://delphi.about.com/od/windowssh...board_hook.htm


Heiko

Aviator 11. Aug 2015 23:07

AW: Eingabe oder Tastendruck im Form pauschal abfragen
 
Wenn du die Unit Winapi.Windows eingebunden hast, sollte er das automatisch finden.

Zitat:

Zitat von hoika (Beitrag 1311857)
Hallo,

die verlinkten Beispiele ist ein bisschen overdressed.

Aber das Stichwort ist Hook [...]

Hooks werden nur so wie ich es weiß öfters von Virenscannern erkannt. Ob das jetzt bei diesem auch der Fall ist weiß ich nicht. Habe auch noch nie mit Hooks arbeiten müssen. TLastInputInfo ist eben relativ einfach zu verwenden und kann regelmäßig über einen TTimer abgefragt werden.

Hier nur ein kleines Beispiel wie ich es umgesetzt habe:
Delphi-Quellcode:
LastInputInfo.cbSize := SizeOf(TLastInputInfo);
if GetLastInputInfo(LastInputInfo) then begin
  if ((GetTickCount - LastInputInfo.dwTime) >= Cardinal(InactivityValue * 60000)) then begin
    DoLockDatabase(True); // Sperrt in meinem Fall die Datenbank
  end;
end;

khh 12. Aug 2015 11:47

AW: Eingabe oder Tastendruck im Form pauschal abfragen
 
danke, funktioniert aber unter Lazarus leider nicht

Nersgatt 12. Aug 2015 13:27

AW: Eingabe oder Tastendruck im Form pauschal abfragen
 
Ich habe das schon einmal mit einem lokalen Maus- und Tastaturhook gelöst. Das hat problemlos funktioniert und Virenscanner haben auch nicht gemeckert.
Ich würde das jederzeit dem KeyDown, etc. abfangen vorziehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 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