Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi der verflixte taschenrechner und die rücktaste (https://www.delphipraxis.net/26671-der-verflixte-taschenrechner-und-die-ruecktaste.html)

Raffy 27. Jul 2004 12:43


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

Die Muhkuh 27. Jul 2004 12:45

Re: der verflixte taschenrechner und die rücktaste
 
Ganz einfach:

Delphi-Quellcode:
Edit1.Undo

Stanlay Hanks 27. Jul 2004 12:51

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:
Edit1.Text := Copy(Edit1.Text,1,Length(Edit1.Text)-1)
löschen.

Man liest sich, Stanlay :hi:

Raffy 27. Jul 2004 12:53

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

Sharky 27. Jul 2004 12:58

Re: der verflixte taschenrechner und die rücktaste
 
Zitat:

Zitat von Spider
Ganz einfach:

Delphi-Quellcode:
Edit1.Undo

Da gibt es aber ein Problem. Wenn Edit1.Text durch das Programm verändert wurde, z.B. durch Edit1.Text := Edit1.Text + '1'; geht Undo nicht.

So kannst Du aber auch das letze Zeichen eines Edits löschen
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  s : String;
begin
  s := Edit1.Text;
  Delete (s,Length(s),1);
  Edit1.Text := s;
end;
Oder mit dem Beispiel von Stanlay

Die Muhkuh 27. Jul 2004 13:00

Re: der verflixte taschenrechner und die rücktaste
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von Spider
Ganz einfach:

Delphi-Quellcode:
Edit1.Undo

Da gibt es aber ein Problem. Wenn Edit1.Text durch das Programm verändert wurde, z.B. durch Edit1.Text := Edit1.Text + '1'; geht Undo nicht.

HaiFisch,

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...

Stanlay Hanks 27. Jul 2004 13:04

Re: der verflixte taschenrechner und die rücktaste
 
Hi nochmal.

Du müsstest dann

Delphi-Quellcode:
  IF Key = #8 THEN
    begin
      Edit1.Text := Copy(Edit1.Text,1,Length(Edit1.Text)-1);
    end;
in das OnKeyPress deines Editfeldes schreiben.

"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:

Raffy 27. Jul 2004 13:10

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

Ultimator 27. Jul 2004 13:12

Re: der verflixte taschenrechner und die rücktaste
 
Wenn mir einer erklärt, wozu die da sind, dann gerne :-)

Die Muhkuh 27. Jul 2004 13:13

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.

Raffy 27. Jul 2004 13:22

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

Nikolas 27. Jul 2004 13:23

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:
Var mem: string = 'leer';
// Speicher füllen:
mem:= edit1.text;
// Speicher aufrufen:
wie oben, nur andersrum :)
// Speicher löschen:
mem:= 'leer';
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?
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.

Ultimator 27. Jul 2004 13:23

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.

sakura 27. Jul 2004 13:25

Re: der verflixte taschenrechner und die rücktaste
 
Ich bin so frei
Zitat:

Zitat von Spider
Soweit ich weiß, steht M für Memory. Demnach Speichern.

M+ = Speichern Aktuellen Wert zum gespeicherten hinzuaddieren (add to Memory)
M- = wie Plus, nur abziehen, ja gibt es auch ;)
MC = Speicher löschen (Memory Clear)
MR = Wieder einfügen / Wert aus dem Speicher laden (Restore from Memory)
Manchmal auch MRC - ReCall from Memory

MS = Microsoft... :D, ne KA. :mrgreen: Das ist Speicher (Save to Memory/Store in Memory)

...:cat:...

Nikolas 27. Jul 2004 13:28

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.

Ultimator 27. Jul 2004 13:30

Re: der verflixte taschenrechner und die rücktaste
 
Zitat:

Zitat von Ultimator
...wenn du willst...

Wenn das Wörtchen "wenn" nicht wär :mrgreen:

Nikolas 27. Jul 2004 13:35

Re: der verflixte taschenrechner und die rücktaste
 
Zitat:

Wenn das Wörtchen "wenn" nicht wär
Würd ich halt case sagen :mrgreen:

Sharky 27. Jul 2004 13:36

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