Prozedur durch Tastatur auslösen
-
- Beiträge: 25
- Registriert: Mo 7. Apr 2014, 20:55
Prozedur durch Tastatur auslösen
Hi Leute
Ich möchte in eins meiner Programme eine Prozedur einbauen die dann startet wenn man eine bestimmte Taste auf der Tastaur drückt.
Wie kann man das umsetzten?
Ich möchte in eins meiner Programme eine Prozedur einbauen die dann startet wenn man eine bestimmte Taste auf der Tastaur drückt.
Wie kann man das umsetzten?
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Prozedur durch Tastatur auslösen
Zum Beispiel indem du KeyPreview und OnKeyPress deines Forms benutzt.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 25
- Registriert: Mo 7. Apr 2014, 20:55
Re: Prozedur durch Tastatur auslösen
OK danke
aber wie bindet man das ein??
aber wie bindet man das ein??

-
- Beiträge: 6910
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Prozedur durch Tastatur auslösen
Mit dem Objectinspector, dort kommen bei Ereignissen als Onxxx Funktionen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 25
- Registriert: Mo 7. Apr 2014, 20:55
Re: Prozedur durch Tastatur auslösen
Ich habe das auf 2 wege ausprobiert und jedesmal kommt die selbe Fehlermeldung...
1. Versuch
2. Versuch
Und jedesmal kommt die Meldung
unit1.pas(36,10)Error:Identifier not found "VK_S"
was mache ich falsch??
1. Versuch
Code: Alles auswählen
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
);
begin
KeyPreview:=True;
if Key=VK_S Then ShowMessage ('Hallo')
end;
2. Versuch
Code: Alles auswählen
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
);
begin
KeyPreview:=True;
case Key of
VK_S : ShowMessage('Hallo');
end;
end;
Und jedesmal kommt die Meldung
unit1.pas(36,10)Error:Identifier not found "VK_S"
was mache ich falsch??
Zuletzt geändert von Lori am Mi 27. Aug 2014, 15:20, insgesamt 1-mal geändert.
Grund: Highlighter
Grund: Highlighter
Re: Prozedur durch Tastatur auslösen
Code: Alles auswählen
procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
if key='s' then (...)
end;

Re: Prozedur durch Tastatur auslösen
Tanketorion hat geschrieben:unit1.pas(36,10)Error:Identifier not found "VK_S"
Code: Alles auswählen
uses ..., LCLType;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 25
- Registriert: Mo 7. Apr 2014, 20:55
Re: Prozedur durch Tastatur auslösen
OK danke
also gibt es da dann 3 Möglichkeiten?
1. if key=83 then
2. if key='s' then
3. case key of VK_S mit LCLType bei Uses??
also gibt es da dann 3 Möglichkeiten?
1. if key=83 then
2. if key='s' then
3. case key of VK_S mit LCLType bei Uses??
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: Prozedur durch Tastatur auslösen
du kannst jede Kombination von 's', 83, VK_S und if, case verwenden.
Zum Beispiel
's', 83 und VK_S(=$53 = 83) ist in diesem Fall alles dasselbe
und case ist eigentlich nur ein erweitertes if
MFG
Komoluna
Zum Beispiel
Code: Alles auswählen
if Key = VK_S then ...
und case ist eigentlich nur ein erweitertes if
MFG
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.