![]() |
der verflixte taschenrechner und die rücktaste
Hallo Leute
So mein Taschenrechner ist jetzt FAST fertig. :-D Nachdem ich die C und CE Taste noch programmiert habe, brauch ich noch ne rücktast. ( z.B. ich gebe die Zahl "1211111" ein und habe mich um eine 1 versehen und will wieder ein zurück gehen um sie zu löschen) Wie macht man das? Ich habe es zwar geschafft, dass ein ganze Zahl gelöscht wird aber nur eine Ziffer? Dárum bitte ich euch um hilfe. :gruebel: Ich will nämlich auch so gut wie möglich Delphi lernen. Ich habe mir auch schon ein Buch gekauft aber darin wird der Taschenrechner nicht ganz zu ende gemacht. Und den will ich jetzt fertig haben. :coder: MFG Raffy |
Re: der verflixte taschenrechner und die rücktaste
Ganz einfach:
Delphi-Quellcode:
Edit1.Undo
|
Re: der verflixte taschenrechner und die rücktaste
Hi. Oder du schaust dir mal die Funktion "Copy" in der OH an. Die letzte Zahl in einem Edit könntest du dann mit (habs nicht getestet, müsste aber stimmen)
Delphi-Quellcode:
löschen.
Edit1.Text := Copy(Edit1.Text,1,Length(Edit1.Text)-1)
Man liest sich, Stanlay :hi: |
Re: der verflixte taschenrechner und die rücktaste
:wiejetzt: Tut mir leid wenn ichs vergessen habe zu sagen
aber ich ein blutiger Anfänger und habe keine Ahnung was du gemeint hast. Wie muss ich das denn in meinen Quellcode schreiben? Kann mir jemand ein Bespiel an hand eines Quellcodes geben? MFG Raffy |
Re: der verflixte taschenrechner und die rücktaste
Zitat:
So kannst Du aber auch das letze Zeichen eines Edits löschen
Delphi-Quellcode:
Oder mit dem Beispiel von Stanlay
procedure TForm1.Button3Click(Sender: TObject);
var s : String; begin s := Edit1.Text; Delete (s,Length(s),1); Edit1.Text := s; end; |
Re: der verflixte taschenrechner und die rücktaste
Zitat:
ich wusste ja nicht wie er es verändert. Und so wie er es geschrieben hat, dachte ich mir, dass das aus dem Buch "Delphi für Kids" kommt... |
Re: der verflixte taschenrechner und die rücktaste
Hi nochmal.
Du müsstest dann
Delphi-Quellcode:
in das OnKeyPress deines Editfeldes schreiben.
IF Key = #8 THEN
begin Edit1.Text := Copy(Edit1.Text,1,Length(Edit1.Text)-1); end; "Key = #8" fragt ab, ob die gedrückte Taste die Rücktaste war und "Copy" Kopiert aus einem bestimmten String (Erster Parameter) von einer bestimmten Position weg (Zweiter Parameter) bis zu einer bestimmten Länge (Dritter Parameter) alle Zeichen und gibt sie als Ergenis der Funktion zurück. Allerdings ist "Edit1.Undo" für soetwas doch denke ich wesentlich sinnvoller, weil einfacher und kürzer. Man liest sich, Stanlay :hi: Edit: Ich bin heute ja mal wieder lahm :oops: |
Re: der verflixte taschenrechner und die rücktaste
Vielen Vielen Dank
Es funktioniert :bounce2: jiepy. Aber es folgt schon das nächste problem. Die Tasten M+, MC, MS, MR. Die versuche ich schon seit heute morgen zu programmieren, aber es gelingt mir einfach nicht. :wall: Ich weiß auch nicht was ich falsch mache. Bitte helft mir noch einmal. MFG Raphael |
Re: der verflixte taschenrechner und die rücktaste
Wenn mir einer erklärt, wozu die da sind, dann gerne :-)
|
Re: der verflixte taschenrechner und die rücktaste
Soweit ich weiß, steht M für Memory. Demnach Speichern.
M+ = Speichern MC = Speicher löschen MR = Wieder einfügen MS = Microsoft... :D, ne KA. |
Re: der verflixte taschenrechner und die rücktaste
mit den m tasten kann man einen wert in einem speziellen label speichern( MS ),
und mit MC kann man ihn wieder löschen, mit MR kann man den wert aus dem label in das eingabefald holen und falls schon ein wert im label ist, dann kann man mit der M+ Taste den wert der gerade im eingabefeld steht dazu zählen( eingbefeld: 4 LabelSpeicher: 5 drücken auf M+ = LabelSpeicher: 9) Ich brauche unbedingt hilfe BITTE |
Re: der verflixte taschenrechner und die rücktaste
Soviel sind diese Tasten doch dazu da einen Speicher zu füllen, oder? Da in diesen Speicher immer nur eine Zahl passt, würde ich sowar vorschlagen:
Delphi-Quellcode:
Ich hab das Memory als String genommen, damit ich mich hier nicht mit strtofloat rumschlagen muss. Hast du dein Edit schon richtig bearbeitet, also ohne Buchstaben, nur ein Komma, Minuszeichen nur am Anfang und so?
Var mem: string = 'leer';
// Speicher füllen: mem:= edit1.text; // Speicher aufrufen: wie oben, nur andersrum :) // Speicher löschen: mem:= 'leer'; Ausserdem habe ich so doe Möglichkeit etwas in meinen Speicher zu schreiben, an dem ich sofort erkennen kann, ob er schon benutzt oder gelöscht wurde. |
Re: der verflixte taschenrechner und die rücktaste
Manchmal gibts ja auch noch M- und sowas...
Aber erstmal zur Frage: Du kannst bei M+ den Wert, der gerade im Feld steht ja in eine Variable speichern und bei MR wieder einfügen. Bei MC weist du der Variable einfach 0 zu, und wenn du willst, kannst du ja dann bei MR anzeigen, dass kein Wert gespeichert ist. |
Re: der verflixte taschenrechner und die rücktaste
Ich bin so frei
Zitat:
|
Re: der verflixte taschenrechner und die rücktaste
@ Ultimator: ich finde es besser, wenn ich in meinen Speicher wirklich alles Speichern kann, was ich ins edit eingeben kann, du versperrst mir aber die '0'. Kommt zwar selten vor, aber wenn ich den speicher fülle (mit einer '0') und mir dann gesagt wird, dass der Speicher leer ist, finde ich dass nicht sauber programmiert, schließlich habe ich den Speicher gefüllt.
|
Re: der verflixte taschenrechner und die rücktaste
Zitat:
|
Re: der verflixte taschenrechner und die rücktaste
Zitat:
|
Re: der verflixte taschenrechner und die rücktaste
Hai,
ihr werdet OffTopic! Also bitte zurück zum Thema ;-) Danke :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 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