Autor Beitrag
DerDelphiAnfänger
Hält's aus hier
Beiträge: 6
Erhaltene Danke: 1



BeitragVerfasst: Fr 30.09.11 17:39 
Hallo,
Ich frage mich, ob es eine einfache möglichkeit gibt, Zwei Zahlen zu addieren mit nur einem Edit-Feld, anstatt Zwei.

schon einmal danke im voraus :D
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 30.09.11 17:54 
Überlege dir doch einfach einmal was du der Reihe nach ausführst, wenn du das machen würdest. Du kannst ja auch den Windows-Rechner zu Rate ziehen und es ausprobieren.

Und dann überlege dir was bei jedem Tastendruck passieren muss. Nur bei jedem einzelnen Tastendruck. Und dann schaue wie viele verschiedene Reaktionen benötigt werden.

Einfach zu verstehen ist das als Anfänger nicht für jeden. ;-) Das Prinzip nennt sich endlicher Automat.
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 30.09.11 21:20 
user profile iconDerDelphiAnfänger hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,
Ich frage mich, ob es eine einfache möglichkeit gibt, Zwei Zahlen zu addieren mit nur einem Edit-Feld, anstatt Zwei.

schon einmal danke im voraus :D


Editfeld füllen, dann irgendeinen (Additions-)Button drücken, Editfeld in Zahl umwandeln und diesen numerischen Wert zwischenspeichern, Editfeld zweckmäßigerweise (Softwareergonomie!) löschen bzw. leeren, nächste Eingabe im Editfeld, dann wiederum auf den Additionsbutton (bei mehreren Summanden) oder auf einen Enter-/Istgleichbutton klicken, wiederum in Zahl umwandeln, addieren und das (Zwischen-)Ergebnis wiederum im Editfeld anzeigen.

Jeder gewöhnliche Taschenrechner (auch der in Windows) macht es vor (programierbare Taschenrechner und solche mit umgekehrter polnischer Notation einmal ausgenommen, die sind auch nicht gewöhnlich). Insofern hat jaenicke recht.
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 01.10.11 09:41 
Man kann auch alles in das Edit-Feld eintragen und dann von einem Math-Parser bearbeiten lassen.
Oder anders - Beispiel:
Weitere Möglichkeit: den String splitten mit dem "+"-Zeichen als Separator.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
function isNumeric(c : char) : Boolean;
begin
  result:= CharInSet(c,['0'..'9']);
end;

Procedure Test2;
var
  strA, strB, strString: String;
  chrA: Char;
  intA: Integer;
begin
strString:= Form1.Edit1.Text;
intA:=0;

repeat
  inc(intA);
  chrA := strString[intA];
  if IsNumeric(chrA) then strA := strA + chrA;
until IsNumeric(chrA)=false or (intA = Length( strString));
Form1.Label1.Caption:= strA;

repeat
  inc(intA);
  chrA := strString[intA];
  if IsNumeric(chrA) then strB := strB + chrA;
until intA = Length( strString);

Form1.Label2.Caption:= strB;
if (strA<>''and (strB<>''then
Form1.Label3.Caption:= IntToStr(StrToInt(strA)+StrToInt(strB));
end;



procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text:='1719+811'//ohne Zwischenraum
Test2;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Text:='1719 + 811'//mit Zwischenraum
Test2;
end;
storestore
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 397
Erhaltene Danke: 7

WIN 7
C#
BeitragVerfasst: So 02.10.11 20:49 
Hi,
mich würde das ganze mal in c# interessiern. Wäre jemand so lieb mir mal ein Beispiel in c# zugeben?
Mfg storestore

_________________
Der Pc ist nur so schlau, wie derjenige der in steuert!
"Don't Quit. Suffer now, and live the rest of your life as a champion"
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 02.10.11 23:16 
Moin!

user profile iconDerDelphiAnfänger hat folgendes geschrieben Zum zitierten Posting springen:
Ich frage mich, ob es eine einfache möglichkeit gibt, Zwei Zahlen zu addieren mit nur einem Edit-Feld, anstatt Zwei.
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Einfach zu verstehen ist das als Anfänger nicht für jeden. ;-) Das Prinzip nennt sich endlicher Automat.
So ist es. Und hier ist eine Beispiel-Implementation dazu. :les: :think: Wie user profile iconjaenicke und ich aber schon sagten, ist das nix für einen Anfänger... :? :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.