Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi NumBlock und Tastatur in Delphi ?? (bin neu) (https://www.delphipraxis.net/77102-numblock-und-tastatur-delphi-bin-neu.html)

SvenD 14. Sep 2006 16:33


NumBlock und Tastatur in Delphi ?? (bin neu)
 
Hi, ich bin neu und habe eigentlich noch fast garkeine Erfahrung, möchte dies aber ändern.

Wir haben nun angefangen in der Schule einen Taschenrechner zu programmieren, jetzt bin ich dabei ihn zu erweitern.

Und nun mein Problem:
Ich möchte einfügen, dass ich Zahlen über die Tastatur, bzw den NumBlock eingeben kann, denn immoment geht die Eingabe nur über klicken auf die Buttons.
Also wie könnte ich daran gehen, oder wo finde ich dazu Tipps?

Mein bisheriger Code für Buttons:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text :=edit1.Text + '1';
end;
edit1 ist dabei das Edit-fenster in welches die Zahl eingetragen wird.



Wenn das hier im falschen Forumteil gepostet ist, tut es mir leid und wenn ich die SuchFu falsch benutzt habe auch, aber ich hab nichts gefunden.

mfg
SvenD

Go2EITS 14. Sep 2006 16:48

Re: NumBlock und Tastatur in Delphi ?? (bin neu)
 
Du kannst mit edit1.text nur rechnen, wenn Du den String in ein Real wandelst:

StrTofloat(edit1.text);

Beispiel:
Dialogs für showmessage unter uses einbinden.

x:=StrTofloat(edit1.text)+StrTofloat(edit2.text);
showmessage('Es klappt! '+floattostr(x));

Da Du Anfänger bist, mache Dich bitte mit nachfolgendem vertraut:
StrToFloat,FloatToStr, etc.

In der Delphihilfe mal Strtofloat eingeben und dann auch mal die "Siehe auch" und "Beispiele" ansehen, bevor Du einen Taschenrechner programmierst.

Ich glaube, auch unter der Suche "Tascherechner" findest Du schon in der DP etwas.
Da bekommst Du eine Übersicht über die Größe Deines Projektes.
Taschenrechner in der DP 203 Ergebnisse bis jetzt.

Viel Erfolg!

SvenD 14. Sep 2006 17:11

Re: NumBlock und Tastatur in Delphi ?? (bin neu)
 
Ja, mit StrToFloat arbeite ich ja bereits, mein Taschenrechner funktioniert ja auch, also ich kann +,-,*,/,wurzel,x²,cos,sin,tan und Kommerzahlen berechnen, ich kann das eingabefeld "löschen"-leeren, hab nen Button zum schließen des Taschenrechners ;-)

weiterer Code:
Delphi-Quellcode:
procedure TForm1.plusClick(Sender: TObject);
begin
wert1 := strToFloat(eingabe.Text);
eingabe.text:='';
rechenart:=1;
end;
und hauptrechenarten definiert in einem case of:
Delphi-Quellcode:
procedure TForm1.gleichClick(Sender: TObject);
begin
wert2 := StrToFloat(eingabe.Text);

case rechenart of
1: ergebnis:=wert1+wert2 ;
2: ergebnis:=wert1-wert2 ;
3: ergebnis:=wert1*wert2 ;
4: ergebnis:=wert1/wert2 ;
end;
eingabe.Text :=Floattostr(ergebnis)
end;


Mein Problem: Wenn ich den Taschenrechner starte, dann funktiniert zwar alles, aber ich kann die Zaheln nur über anklicken in das Editfeld bekommen, oder über die Tastatur, wenn das Editfeld angewählt ist.

Ich möchte aber die zahlen die ich berechnen möchte immer mit der Tastatur eingeben können, sowie +,-,.. auch, also so das ich das Programm geöffnet habe aber dann statt Maus, den Ziffernblock benutzen kann.

mfg SvenD

Martin K 14. Sep 2006 17:17

Re: NumBlock und Tastatur in Delphi ?? (bin neu)
 
Schau Dir mal das Ereignis OnKeyPress der Form an.
mit dem Parameter Key: Char bekommst Du den eingegebenen Buchstaben geliefert.

So könnte es dann aussehen:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
    '0': Button0.Click;
    '1': Button1.Click;
    '2': Button2.Click;
    '+': plus.Click;
    '=': gleich.Click;
  end;
end;
usw.

Falls es dann nicht so Funktioniert wie es soll, musst Du evtl. noch die Eigenschaft KeyPreview der Form auf TRUE setzen.

SvenD 14. Sep 2006 19:06

Re: NumBlock und Tastatur in Delphi ?? (bin neu)
 
Nach nun intensivem suchen und ausprobieren frage ihch mich immernoch wie ich dieses erstellen kann:
Delphi-Quellcode:
TForm1.FormKeyPress
wenn ich einen Button mache kommt click und nicht press, wenn ich das nur als text nehme, geht es auch nicht und wenn ich versuche bei meinen buttons keyPress zu definieren möchte er das auch nicht

*ratlos ist*

was kann ich tun?

Martin K 14. Sep 2006 19:15

Re: NumBlock und Tastatur in Delphi ?? (bin neu)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Okay, also Du klickst irgendwo an eine Stelle auf deine Form (also kein Button oder Edit oder so, sondern dahin wo nichts ist).
Dann sollte im Objekt Inspektor, der ist unten links, was zu deiner Form angezeigt werden - es sind zwei Registrierkarten, die eine heißt Eigenschaften, die andere Ereignisse (falls Du eine deutsche Delphi-Version hast). Du klickst auf die andere Registrierkarte (also auf "Ereignisse"), dort müsste ein Eintrag "OnKeyPress" sein.
Jetzt machst Du einen Doppelklick rechts neben OnKeyPress in das leere Feld, dann sollte diese erscheinen:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin

end;
Diese Prozedur füllst Du einfach mit dem Code aus dem meinem obigen Post, musst ihn natürlich noch etwas ergänzen...

[edit]
Noch eine kleine Anleitung in Bildern als Anhang:
Je nach Delphi-Version kann es bei Dir natürlich etwas anders aussehen - der hier dargestellte Objekt Inspektor befindet sich unten links.
[/edit]


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