![]() |
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:
Allerdings weiss ich nicht wie ich die Variable Key als Word-Variable abrufen soll.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin if key=chr(49) then button1click(button1); end; Habe es auch wie bereits erwähnt mit dem Aufruf button1.click probiert. Hoffe ihr könnt mir helfen... Wieder mal... Gruß Stefan |
Re: Taschenrechner über Tastatur bedienen
Mit Ord('a') zB kannst du key als word benutzen, also
Delphi-Quellcode:
Zu dem Anzeigefehler habe ich bereits einen Thread erstellt gehabt, dass Problem ist behoben.
if key=ord('a') then Button1.Click;
Statt Button1clickt benutze lieber Button1.Click oder lagere den Code der Funktion gleich in eine unabhängige Procedure aus |
Re: Taschenrechner über Tastatur bedienen
Delphi-Quellcode:
Also, bei mir funktiniert der obige Code einwandfrei.
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; Es ist eine Form mit einem Button. Grüße Klaus |
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 |
Re: Taschenrechner über Tastatur bedienen
Was meinst denn Du mit anvisiert?
Grüße Klaus |
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
|
Re: Taschenrechner über Tastatur bedienen
Zitat:
|
Re: Taschenrechner über Tastatur bedienen
Anvisiert bedeutet, beim Start des Programms ist der erste Button automatisch markiert ist.
Komisch, nicht? Gruß Stefan |
Re: Taschenrechner über Tastatur bedienen
Zitat:
|
Re: Taschenrechner über Tastatur bedienen
Ok hier kommt er, er ist allerdings sehr schlecht kommentiert und sehr lang :oops: :
Code:
Gruß
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. Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 Uhr. |
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