Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Alle Systemweiten Eingaben abfragen (https://www.delphipraxis.net/169014-alle-systemweiten-eingaben-abfragen.html)

Sir Rufo 24. Jun 2012 21:04

AW: Alle Systemweiten Eingaben abfragen
 
Zitat:

Zitat von Luckie (Beitrag 1172219)
Zitat:

Zitat von Furtbichler (Beitrag 1172216)
Zitat:

Zitat von jaenicke (Beitrag 1172175)
Davon, dass man Blödsinn wiederholt, wird er auch nicht wahrer... :roll:

Ein wenig arrogant heute, wie? Und was für ein Benehmen... Shocking.

Was ist daran arrogant, wenn etwas richtig gestellt wird?

Vor allem wenn es sich um verkrustete Denkweisen handelt (die ich bis vor Kurzem auch noch hatte), da muss man schon mal mit einem Holzhammer kommen :)

Daniel 24. Jun 2012 22:17

AW: Alle Systemweiten Eingaben abfragen
 
Der Begriff "Blödsinn" war vielleicht unglücklich gewählt.

DeddyH 25. Jun 2012 07:49

AW: Alle Systemweiten Eingaben abfragen
 
Und so etwas war der Grund hierfür.

Furtbichler 25. Jun 2012 08:04

AW: Alle Systemweiten Eingaben abfragen
 
Eben.
Zitat:

Zitat von jaenicke (Beitrag 1172217)
Wenn ich extra schreibe, dass das nur immer wieder falsch irgendwo behauptet wird und das dann genau wieder kommt, dann finde ich das halt nicht wirklich schön... :roll:

Ginge mir nicht anders. Nur der Ton ist (für Dich) ungewöhnlich. Eine andere Wortwahl, und betont viele :-D, :), ;-) usw. emoticons und schon ist die Aussage kompatibel.

Destroyer446 25. Jun 2012 11:59

AW: Alle Systemweiten Eingaben abfragen
 
So, ich habs jetzt mal auf einem anderen Weg versucht, nur bekomme ich hier immer EStackOverflow Error (nach 10s).
Mein Code (eigene Unit):
Delphi-Quellcode:
unit GlobalPressedKey;

interface

uses Windows, ExtCtrls, Classes;

type
  TGlobalPressedKey = class(TObject)
  private
    KeyTimer: TTimer;
    procedure KeyTimerOnTimer(Sender: TObject);
    function GetPressedKey: Integer;
    procedure SetPressedKey(Key: Integer);
  public                                      
    constructor Create(AOwner: TComponent; AIntervalKeyCheck: Integer = 10);    
    property PressedKey: Integer read GetPressedKey write SetPressedKey default 0;
    destructor Free;
  end;

implementation

constructor TGlobalPressedKey.Create(AOwner: TComponent; AIntervalKeyCheck: Integer = 10);
begin
 KeyTimer := TTimer.Create(AOwner);
 KeyTimer.Interval := AIntervalKeyCheck;
 KeyTimer.OnTimer := KeyTimerOnTimer;
end;

procedure TGlobalPressedKey.KeyTimerOnTimer(Sender: TObject);
var
 i: Integer;
begin
 For i := 1 to 300 do
  If GetAsyncKeyState(i) and 1 <> 0 then
  begin
   SetPressedKey(i);
   Exit;
  end;
 SetPressedKey(0);
end;

procedure TGlobalPressedKey.SetPressedKey(Key: Integer);
begin
 PressedKey := Key; // Markiert wird immer diese Zeile aber naja.... es liegt doch irgendwie am Timer oder?
end;

function TGlobalPressedKey.GetPressedKey: Integer;
begin
 Result := PressedKey;
end;

destructor TGlobalPressedKey.Free;
begin
 KeyTimer.Free;
end;

end.
Mfg

DeddyH 25. Jun 2012 12:02

AW: Alle Systemweiten Eingaben abfragen
 
Zitat:

Delphi-Quellcode:
function TGlobalPressedKey.GetPressedKey: Integer;
begin
 Result := PressedKey;
end;

Du weist im Getter den Wert der zugehörigen Property zu, welche über den Getter ermittelt wird, der auf die Property zugreift...

Daniel 25. Jun 2012 12:02

AW: Alle Systemweiten Eingaben abfragen
 
Passt doch mit der markierten Zeile: "PressedKey" ist eine Eigenschaft der Klasse "TGlobalPressedKey", deren Setter "SetPressedKey" immer dann aufgerufen wird, wenn Du ihr einen Wert zuweist. Und wenn wir mal schauen, was in diesem Setter passiert, dann ... huch .. sehen wir, dass Du genau der Eigenschaft etwas zuweist, in deren Setter Du gerade bist. Das Programm läuft im Kreis und nach einer gewissen Zeit wird ihm schlecht.

Destroyer446 25. Jun 2012 12:15

AW: Alle Systemweiten Eingaben abfragen
 
Aber ich brauch den Getter doch um aus PressedKey zu lesen?!
Wie soll ich das dann machen?

Hab sowas noch nicht oft gemacht^^

Mfg

DeddyH 25. Jun 2012 12:19

AW: Alle Systemweiten Eingaben abfragen
 
Deklarier Dir ein privates Integer-Feld namens FPressedKey. Auf das greifst Du dann zu.
Delphi-Quellcode:
procedure TGlobalPressedKey.SetPressedKey(Key: Integer);
begin
  FPressedKey := Key;
end;

function TGlobalPressedKey.GetPressedKey: Integer;
begin
  Result := FPressedKey;
end;

Destroyer446 25. Jun 2012 12:27

AW: Alle Systemweiten Eingaben abfragen
 
Danke, klappt!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 Uhr.
Seite 2 von 4     12 34      

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