![]() |
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:
edit1 ist dabei das Edit-fenster in welches die Zahl eingetragen wird.
procedure TForm1.Button1Click(Sender: TObject);
begin edit1.Text :=edit1.Text + '1'; end; 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 |
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. ![]() Viel Erfolg! |
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:
und hauptrechenarten definiert in einem case of:
procedure TForm1.plusClick(Sender: TObject);
begin wert1 := strToFloat(eingabe.Text); eingabe.text:=''; rechenart:=1; end;
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 |
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:
usw.
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; Falls es dann nicht so Funktioniert wie es soll, musst Du evtl. noch die Eigenschaft KeyPreview der Form auf TRUE setzen. |
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:
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
TForm1.FormKeyPress
*ratlos ist* was kann ich tun? |
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:
Diese Prozedur füllst Du einfach mit dem Code aus dem meinem obigen Post, musst ihn natürlich noch etwas ergänzen...
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin end; [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