Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Taschenrechner über Tastatur bedienen (https://www.delphipraxis.net/84048-taschenrechner-ueber-tastatur-bedienen.html)

Stefan92 10. Jan 2007 17:40


Taschenrechner über Tastatur bedienen
 
Hallo,
ich habe folgendes Problem, und zwar habe ich einen einfachen Taschenrechner programmiert, der auch funktioniert, aber jetzt möchte ich ihn auch über Tastatur bedienen.
Wie kriege ich es denn z.B. hin dass er stetig auf einen Tastendruck wartet? Mit read?
Sorry, dass ich frage aber ich google schon seit einigen Tagen und auch im Forum hab ich geguckt, aber entweder gibt es das nicht oder es ist selbstverständlich :pale: ...

Gruß

Stefan

sirius 10. Jan 2007 18:05

Re: Taschenrechner über Tastatur bedienen
 
Schau dir mal die Ereignisse deines Formulars an.

zahor 10. Jan 2007 18:09

Re: Taschenrechner über Tastatur bedienen
 
z.B. onKeyPress oder onKeyDown, die gedrückte taste steht in der variable "key"

inherited 10. Jan 2007 18:32

Re: Taschenrechner über Tastatur bedienen
 
"KeyPreview" der Form sollte noch aktiviert sein.

Stefan92 11. Jan 2007 07:04

Re: Taschenrechner über Tastatur bedienen
 
Erstmal vielen Dank für die vielen Antworten.
Ist echt ein tolles Forum :wink:.
Aber jetzt zur Sache:
Ich habe jetzt folgende Prozedur geschrieben, die ich auch in der Delphi-Hilfe gefunden habe:
Code:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  if key='1' then button1click(button1);
end;
Die Prozedur Button1click gibt es wirklich.
Allerdings reagiert da nichts.
Hoffe ihr könnt mir helfen.

Gruß

Stefan

PS: Wenn ihr wollt, poste ich auch den ganzen Quelltext.

[edit=Admin] Mfg, Daniel[/edit]

Klaus01 11. Jan 2007 07:35

Re: Taschenrechner über Tastatur bedienen
 
Zitat:

Zitat von Stefan92
Die Prozedur Button1click gibt es wirklich.
Allerdings reagiert da nichts.
Hoffe ihr könnt mir helfen.

Guten Morgen Stefan,

hast Du keyPreview in der Form auf true gesetzt?

Grüße
Klaus

[edit=Admin] Mfg, Daniel[/edit]

Tormentor32 11. Jan 2007 07:37

Re: Taschenrechner über Tastatur bedienen
 
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  if key='1' then button1.click;
end;
Probier mal das

edit: Ist der Fokus auf einem der buttons? Ich glaube, dann wird das KeyPress eines Buttons ausgelöst, und nicht der Form... oder?

Stefan92 11. Jan 2007 14:22

Re: Taschenrechner über Tastatur bedienen
 
@Klaus01: Ja, in der Form ist Keypreview auf true gestellt.

@Tormentor32:
Zitat:

Ist der Fokus auf einem der buttons? Ich glaube, dann wird das KeyPress eines Buttons ausgelöst, und nicht der Form... oder?
Tut mir leid, aber ehrlich gesagt verstehe ich die Frage nicht. :wiejetzt: Meinst du mit Fokus das Ziel?

Gruß

Stefan

inherited 11. Jan 2007 14:22

Re: Taschenrechner über Tastatur bedienen
 
Zitat:

Zitat von Tormentor32
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  if key='1' then button1.click;
end;
Probier mal das

edit: Ist der Fokus auf einem der buttons? Ich glaube, dann wird das KeyPress eines Buttons ausgelöst, und nicht der Form... oder?

Genau dafür gibt es ja KeyPreview :roll:

Tormentor32 11. Jan 2007 14:26

Re: Taschenrechner über Tastatur bedienen
 
Mit Fokus meine ich, dass deine Buttons "Anvisiert" sind, soll heißen markiert.
Versuche mal inheriteds Vorschlag mit KeyPreview

edit:
Zitat:

@Klaus01: Ja, in der Form ist Keypreview auf true gestellt.
wer lesen kann ist klar im Vorteil! Mist!

edit2: Sieht das bei euch auch so komisch aus? siehe Anhang
edit3: So :mrgreen: jetzt ist es wieder schön, da brauchen wir auch keinen Screenshot mehr...

Stefan92 11. Jan 2007 14:40

Re: Taschenrechner über Tastatur bedienen
 
@Tormentor32: Ja, bei mir sah es auch so gruselig aus, schien wohl an den Frames zu hängen. Allerdings benutze ich auch momentan den Firefox... Wie auch immer.

@all: Ich habe meine Prozedur jetzt ein bisschen geändert:
Code:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if key=chr(49) then button1click(button1);
end;
Allerdings weiss ich nicht wie ich die Variable Key als Word-Variable abrufen soll.
Habe es auch wie bereits erwähnt mit dem Aufruf button1.click probiert.
Hoffe ihr könnt mir helfen... Wieder mal...

Gruß

Stefan

inherited 11. Jan 2007 14:42

Re: Taschenrechner über Tastatur bedienen
 
Mit Ord('a') zB kannst du key als word benutzen, also
Delphi-Quellcode:
  if key=ord('a') then Button1.Click;
Zu dem Anzeigefehler habe ich bereits einen Thread erstellt gehabt, dass Problem ist behoben.
Statt Button1clickt benutze lieber Button1.Click oder lagere den Code der Funktion gleich in eine unabhängige Procedure aus

Klaus01 11. Jan 2007 14:46

Re: Taschenrechner über Tastatur bedienen
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  showMessage('test');
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if key = '1' then
     button1.Click;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.KeyPreview:=true;
end;
Also, bei mir funktiniert der obige Code einwandfrei.
Es ist eine Form mit einem Button.

Grüße
Klaus

Stefan92 11. Jan 2007 14:55

Re: Taschenrechner über Tastatur bedienen
 
Sorry, ich hab deinen Thread nicht gesehen.
Es geht bei mir trotzdem nicht.
Achja, hat es etwas zu bedeuten, wenn der Button am Anfang anvisiert ist?

Gruß

Stefan

Klaus01 11. Jan 2007 15:01

Re: Taschenrechner über Tastatur bedienen
 
Was meinst denn Du mit anvisiert?

Grüße
Klaus

Tormentor32 11. Jan 2007 15:06

Re: Taschenrechner über Tastatur bedienen
 
Wenn du zum Beispiel zwei Buttons auf der Form hast, und den einen anklickst, dann wird er noch zusätzlich markiert, und du kannst mit der Enter-Taste noch mal das Klick-Event auslösen, solange der Button markiert ist, sprich: Den Fokus hat

inherited 11. Jan 2007 15:11

Re: Taschenrechner über Tastatur bedienen
 
Zitat:

Zitat von Stefan92
Es geht bei mir trotzdem nicht.

Das ist praktishc unmöglich. Poste mal deinen gesamten Code

Stefan92 11. Jan 2007 15:13

Re: Taschenrechner über Tastatur bedienen
 
Anvisiert bedeutet, beim Start des Programms ist der erste Button automatisch markiert ist.
Komisch, nicht?

Gruß

Stefan

inherited 11. Jan 2007 15:14

Re: Taschenrechner über Tastatur bedienen
 
Zitat:

Zitat von Stefan92
Anvisiert bedeutet, beim Start des Programms ist der erste Button automatisch markiert ist.
Komisch, nicht?

Gruß

Stefan

Nein, das ist normal. Jetzt poste mal bitte deinen qt

Stefan92 11. Jan 2007 15:34

Re: Taschenrechner über Tastatur bedienen
 
Ok hier kommt er, er ist allerdings sehr schlecht kommentiert und sehr lang :oops: :
Code:
unit Taschenrechner;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ActnList;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    Button18: TButton;
    Button19: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button19Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: char);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

var operation,strich,punkt,punktvorstrich:boolean;
    zahl1,zahl2,zahl3,result:real;
    gesucht:string;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if (edit1.text='0') or (operation=true) then
  begin
    edit1.text:='1';
    operation:=false;
  end
  else edit1.text:=edit1.text+'1';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if (edit1.text='0') or (operation=true) then
  begin
    edit1.text:='2';
    operation:=false;
  end
  else edit1.text:=edit1.text+'2';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  if (edit1.text='0') or (operation=true) then
  begin
    edit1.text:='3';
    operation:=false;
  end
  else edit1.text:=edit1.text+'3';
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  if (edit1.text='0') or (operation=true) then
  begin
    edit1.text:='4';
    operation:=false;
  end
  else edit1.text:=edit1.text+'4';
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  if (edit1.text='0') or (operation=true) then
  begin
    edit1.text:='5';
    operation:=false;
  end
  else edit1.text:=edit1.text+'5';
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  if (edit1.text='0') or (operation=true) then
  begin
    edit1.text:='6';
    operation:=false;
  end
  else edit1.text:=edit1.text+'6';
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  if (edit1.text='0') or (operation=true) then
  begin
    edit1.text:='7';
    operation:=false;
  end
  else edit1.text:=edit1.text+'7';
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  if (edit1.text='0') or (operation=true) then
  begin
    edit1.text:='8';
    operation:=false;
  end
  else edit1.text:=edit1.text+'8';
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  if (edit1.text='0') or (operation=true) then
  begin
    edit1.text:='9';
    operation:=false;
  end
  else edit1.text:=edit1.text+'9';
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
  if (edit1.text='0') or (operation=true) then
  begin
    edit1.text:='0';
    operation:=false;
  end
  else edit1.text:=edit1.text+'0';
end;

procedure TForm1.Button18Click(Sender: TObject);
begin
  edit1.text:='0';
  strich:=false;
  punkt:=false;
  punktvorstrich:=false;
  zahl1:=0;
  zahl2:=0;
  zahl3:=0;
end;

procedure TForm1.Button12Click(Sender: TObject);
var vorzeichenwechsel:real;
begin
  vorzeichenwechsel:=strtofloat(edit1.text);
  vorzeichenwechsel:=vorzeichenwechsel*(-1);
  edit1.text:=floattostr(vorzeichenwechsel);
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  if edit1.text='' then edit1.text:='0';
end;

procedure TForm1.Button19Click(Sender: TObject);
var i:integer;
    s:string;
begin
  for i:=1 to (length(edit1.text)-1) do
  begin
    s:=s+edit1.text[i];
  end;
  edit1.text:=s;
  if edit1.text='' then edit1.text:='0';
end;

procedure TForm1.Button11Click(Sender: TObject);
var j:integer;
    komma:boolean;
begin
  komma:=false;
  for j:=1 to length(edit1.text) do
  if edit1.text[j]=',' then
  begin
    komma:=true;
    break;
  end
  else komma:=false;
  if komma=false then
  begin
    edit1.text:=edit1.text+',';
  end;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
  result:=0;
  zahl2:=strtofloat(edit1.text);
  if result=0 then result:=zahl2;
  if edit1.text='0' then result:=zahl2;
  if gesucht='summe' then result:=zahl1+zahl2;
  if gesucht='differenz' then result:=zahl1-zahl2;
  if gesucht='quotient' then result:=zahl1/zahl2;
  if gesucht='produkt' then result:=zahl1*zahl2;
  edit1.text:=floattostr(result);
  operation:=true;
  strich:=true;     {+}
  zahl1:=strtofloat(edit1.text);
  gesucht:='summe';

end;

procedure TForm1.Button14Click(Sender: TObject);
begin
  result:=0;
  zahl2:=strtofloat(edit1.text);
  if result=0 then result:=zahl2;
  if gesucht='summe' then result:=zahl1+zahl2;
  if gesucht='differenz' then result:=zahl1-zahl2;
  if gesucht='quotient' then result:=zahl1/zahl2;
  if gesucht='produkt' then result:=zahl1*zahl2;
  edit1.text:=floattostr(result);
  operation:=true;
  strich:=true;     {-}
  zahl1:=strtofloat(edit1.text);
  gesucht:='differenz';
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
  if (strich=false) and (punkt=true) then
  begin
    result:=0;
    zahl2:=strtofloat(edit1.text);
    if gesucht='summe' then result:=zahl1+zahl2;
    if gesucht='differenz' then result:=zahl1-zahl2;
    if gesucht='quotient' then result:=zahl1/zahl2;
    if gesucht='produkt' then result:=zahl1*zahl2;
    edit1.text:=floattostr(result);
    operation:=true;
  end;
  if strich=true then
  begin
    zahl2:=strtofloat(edit1.Text);
    punktvorstrich:=true;
  end;
  operation:=true;
  punkt:=true;    {/}
  if punktvorstrich=false then zahl1:=strtofloat(edit1.text);
  gesucht:='quotient';
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
  if (strich=false) and (punkt=true) then
  begin
    result:=0;
    zahl2:=strtofloat(edit1.text);
    if gesucht='summe' then result:=zahl1+zahl2;
    if gesucht='differenz' then result:=zahl1-zahl2;
    if gesucht='quotient' then result:=zahl1/zahl2;
    if gesucht='produkt' then result:=zahl1*zahl2;
    edit1.text:=floattostr(result);
    operation:=true;
  end;
  if strich=true then
  begin
    zahl2:=strtofloat(edit1.Text);
    punktvorstrich:=true;
  end;
  operation:=true;
  punkt:=true;    {*}
  if punktvorstrich=false then zahl1:=strtofloat(edit1.text);
  gesucht:='produkt';
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
  result:=0;
  if punktvorstrich=false then zahl2:=strtofloat(edit1.text);
  if (zahl1=0) and (punkt=false) then edit1.text:=floattostr(zahl2)
  else
  begin
    if punktvorstrich=true then
    begin
      zahl3:=strtofloat(edit1.text);
      result:=(zahl2*zahl3)+zahl1;
      edit1.text:=floattostr(result);
    end
    else
    begin
      if gesucht='summe' then result:=zahl1+zahl2;
      if gesucht='differenz' then result:=zahl1-zahl2;
      if gesucht='quotient' then result:=zahl1/zahl2;
      if gesucht='produkt' then result:=zahl1*zahl2;
      edit1.text:=floattostr(result);
    end;
  end;
  operation:=true;
  strich:=false;
  punkt:=false;
  punktvorstrich:=false;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  if key='1' then button1.click;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  keypreview:=true;
end;

end.
Gruß

Stefan

dominikkv 11. Jan 2007 15:56

Re: Taschenrechner über Tastatur bedienen
 
ich würd nun so vorgehen:
1. den gesamten teil der in Button1Click steht mit {} ausklammern und ein einfaches showmessage('hallo'); unten reinschreiben
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
{  if (edit1.text='0') or (operation=true) then
  begin
    edit1.text:='1';
    operation:=false;
  end
  else edit1.text:=edit1.text+'1';}
showmessage('Hallo');
end;
dann starten und einmal ausprobieren.
wenn Hallo kommt weißt du das es an der Button1Click prozedur liegt...
wenn nein dann änder die FormKeyPress Procedure:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
 // if key='1' then button1.click;
showmessage('huhu');
end;
wieder starten und irgendeinen knopf auf der tastatur drücken... wenn huhu kommt weißt du das die procedur aufgerufen wird und du kannst zum nächsten schritt gehen:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  {if key='1' then} button1.click;
end;
jetzt müsste immer wenn du ne taste drückst die prozedur aufgerufen werden (also Hallo erscheinen)
wenn nicht dann liegts an dem if key='1' then

mfg.dominik

Stefan92 11. Jan 2007 16:08

Re: Taschenrechner über Tastatur bedienen
 
Erstmal Danke für die Anleitung fürs Debugging. :zwinker:
Jetzt habe ich festgestellt, dass es am zweiten Teil, der Prozedur, hängt. Die Nachricht 'huhu' wird nicht ausgegeben.
Was nun? Hat jemand ne Idee?

Gruß

Stefan

dominikkv 11. Jan 2007 16:20

Re: Taschenrechner über Tastatur bedienen
 
das bedeutet wohl das die FormKeyPress Procedure nicht aufgerufen wird wenn du ne Taste drückst
:arrow: hast du im Objektinspector das Ereignis OnKeyPress der Form der Procedure FormKeyPress zugewiesen?

Stefan92 11. Jan 2007 16:30

Re: Taschenrechner über Tastatur bedienen
 
Ja, das war der Fehler, ich habe in der Form nicht das Ereignis OnKeyPress zugewiesen. Jetzt klappt alles tadellos.
Vielen, vielen Dank an alle, die mir diesen Moment ermöglich haben und ein ganz besonderes Dankeschön möchte ich diesem tollen Forum wünschen. :hello: :dp: :cheers: *übertreib*

So nun reichts aber mit der Freude, jetzt mach ich erstmal mein Programm fertig. :zwinker:

Gruß

Stefan

Stefan92 11. Jan 2007 16:37

Re: Taschenrechner über Tastatur bedienen
 
Achso, eine Sache wäre da noch, kann ich Sondertasten wie Enter oder Backspace auch abrufen? Wenn ja, wie?

Gruß

Stefan

Klaus01 11. Jan 2007 16:43

Re: Taschenrechner über Tastatur bedienen
 
Enter hat den Code #13
und Backspace #8

Grüße
Klaus

dominikkv 11. Jan 2007 16:44

Re: Taschenrechner über Tastatur bedienen
 
hi
enter ist #13, also if key = #13 then
backspace...ka...schau mal in der suche von DP
edit:/...mist...zu spät :zwinker:

Stefan92 11. Jan 2007 18:32

Re: Taschenrechner über Tastatur bedienen
 
Danke,
klappt auch.
Jetzt aber nur noch eine Sache, wie kriege ich es hin, dass Buttons nicht automatisch anvisiert werden?

Gruß

Stefan

Stefan92 12. Jan 2007 07:00

Re: Taschenrechner über Tastatur bedienen
 
Hat denn keiner ne Ahnung oder erholt ihr euch grade alle von meinen ganzen Problemchen. :)

Gruß

Stefan

Stefan92 12. Jan 2007 07:16

Re: Taschenrechner über Tastatur bedienen
 
Ok, hat sich mittlerweile erledigt, denn ich bin zufällig auf die Eigenschaft Tabstop gestossen, die ich bei allen Buttons auf false gesetzt hab. So, das wars. Taschenrechner 2 ist fertig (bis auf die Hilfe).

Gruß

Stefan

SirThornberry 12. Jan 2007 09:18

Re: Taschenrechner über Tastatur bedienen
 
Nutze zukünftig bitte den "Edit"-Button anstelle von 2 mal direkt hintereinander einen Beitrag zu schreiben, Danke :-D
Zudem ist es üblich den anderen wenigstens 24 Stunden zu geben bevor du nochmal nachfragst ob denn keiner etwas weiß.

inherited 12. Jan 2007 14:01

Re: Taschenrechner über Tastatur bedienen
 
ich hacke mal weiter auf dir rum :mrgreen:
Normaleweise ist es hier auch üblich, für jede neue Frage einen neuen Thread aufzumachen damit jeder schon am Threadtitel sehen kann, was hier behandelt wird.

Stefan92 12. Jan 2007 14:06

Re: Taschenrechner über Tastatur bedienen
 
@ SirThornberry: Tut mir leid wegen des Editierens, da hab ich nicht dran gedacht, aber das mit den 24 Stunden hab ich nicht gewusst, ich hab eben erst die FAQ gefunden.

@inherited: Ok, mach ich in Zukunft. :angel2:

Gruß

Stefan

ghost1601 12. Jan 2007 16:40

Re: Taschenrechner über Tastatur bedienen
 
sagt mal, so ganz nebenbei, kann man anstelle von dem buchstaben auch irgendwie den pfeil der nach rechts zeigt nehmen?
wenn ja wie?

Stefan92 12. Jan 2007 20:04

Re: Taschenrechner über Tastatur bedienen
 
Tut mir leid, ich versteh deine Frage nicht ganz. Wär schon, wenns etwas präziser ginge. Meinst du jetzt beim Taschenrechner oder was? Wenn es nichts mit dem Thema zu tun hat, dann mache bitte einen neuen Thread auf.

Gruß

Stefan

ghost1601 12. Jan 2007 20:16

Re: Taschenrechner über Tastatur bedienen
 
Nocheinmal, du hattest doch einen Taschenrechner der über deine Tastatur funzen sollte, stimmts?
Dabei ging es um die Eingabe von Zahlen, ich will, dass wenn man eine der Pfeiltasten auf der Tastatur benutzt dadurch auch eine Reaktion stattfindet. Also dasselbe (so ziemlich) wie auch in deinem Programm halt nur mit Pfeiltasten, klar?

Stefan92 12. Jan 2007 20:51

Re: Taschenrechner über Tastatur bedienen
 
Achso,
klar geht das.
Und zwar musst du die Prozedur OnKeyDown benutzen.
Beispiel:
Code:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if key = vk_left then Anweisung;
end;
Die gedrückte Taste wird halt automatisch in der Variable Key gespeichert. Die Sondertasten rufst du mit vk_... auf.
Dazu kannst du auch in der Hilfe von Delphi gucken unter Virtuelle Tastencodes oder so.
Hier nur nochmal kurz die Pfeiltasten:
VK_LEFT Taste Links
VK_UP Taste Auf
VK_RIGHT Taste Rechts
VK_DOWN Taste Ab

Gruß

Stefan

ghost1601 13. Jan 2007 09:35

Re: Taschenrechner über Tastatur bedienen
 
alles klar, dann mal einen schönen dank an dich :thumb:
weiter so

Stefan92 13. Jan 2007 13:23

Re: Taschenrechner über Tastatur bedienen
 
Kein Problem.
Aber jetzt hab ich nochmal ne Frage, die wie ich finde auch zum Thread passt.
Und zwar würde ich gern wissen, wie ich mit Tastenkombinationen arbeiten kann, z.B. dass die Info geöffnet wird, wenn i+n+f+o gleichzeitig gedrückt werden.

Gruß

Stefan

juergen 13. Jan 2007 14:39

Re: Taschenrechner über Tastatur bedienen
 
hier würde ich lieber bei der "Norm" bleiben" und die Tastenkombination z.B. Alt+I nehmen, oder?
Das sind die Menüs mit dem Strich umter dem entsprechenden Buchstaben, deklariert mit einem "&" -Zeichen vor dem gewünschten Buchstaben. (Stichwort: Hotkeys)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz