Entwickler-Ecke

Sonstiges (Delphi) - String an Variable anhängen


der13geist - Fr 12.10.07 14:09
Titel: String an Variable anhängen
Hallo
Ich habe gestern angefangen mit delphi zu Programmieren.
Natürlich wollte ich zuerst einen einfachen Taschenrechner machen.
Aber einen wie der Standart Rechner von Windows
(Also man klickt eine Zahl an die erscheint dan im Edit feld dann klickt man noch eine an die erscheint dann nach der ersten Zahl)
Beim Klick wird die gedrückte Zahl einer Variable übergeben und dann dem edit1 die variable zugewiesen.
Nur habe ich ein Problem da ja jede neue Zahl der Variable ANGEHANGEN werden soll aber ich die Variable nur neu beschreiben kann
Hier mein Code bissher

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:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
  private
      eingabe1 : String;
  public

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
eingabe1 := '1';
Edit1.Text := eingabe1;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
eingabe1 := '2';
Edit1.Text := eingabe1;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin

end;

procedure TForm1.Button13Click(Sender: TObject);
begin

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
eingabe1 := '3';
Edit1.Text := eingabe1;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
eingabe1 := '4';
Edit1.Text := eingabe1;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
eingabe1 := '5';
Edit1.Text := eingabe1;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
eingabe1 := '6';
Edit1.Text := eingabe1;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
eingabe1 := '7';
Edit1.Text := eingabe1;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
eingabe1 := '8';
Edit1.Text := eingabe1;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
eingabe1 := '9';
Edit1.Text := eingabe1;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
eingabe1 := '0';
Edit1.Text := eingabe1;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin

end;

procedure TForm1.Button15Click(Sender: TObject);
begin

end;

end.


Alpha_Wolf - Fr 12.10.07 14:16


Delphi-Quelltext
1:
Edit1.Text := Edit1.Text + eingabe1;                    

Strings kannst du mit dem + Zeichen aneinanderhängen.

Versuchs aber dochmal mit der Forumssuche.. dort gibt es schon sehr viele Taschenrechner die sehr gut aufgebaut sind.

Ich empfehle dir auch den Crashkurs von user profile iconChristian S.: Crashkurs [http://www.stelzmann-duesseldorf.de/tutorials/CrashkursReloaded/Crashkurs.pdf]


der13geist - Fr 12.10.07 14:31

DANKE
ich wäre so darauf nicht gekommen da ich versucht habe (da ich grade mit php fertig geworden bin) alles irgendwie like .= oder .:= zusammen zuhängen ^^


der13geist - Fr 12.10.07 15:10

Ein Problem habe ich aber noch.
Mein Rechner rechnet immer nur + ??

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:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
  private
      eingabe : String;
      aufgabe : String;
      eingabe1 : Integer;
      eingabe2 : Integer;
      status : Integer;
  public

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
eingabe := '1';
Edit1.Text := Edit1.Text + eingabe;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
eingabe := '2';
Edit1.Text := Edit1.Text + eingabe;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
eingabe := '3';
Edit1.Text := Edit1.Text + eingabe;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
eingabe := '4';
Edit1.Text := Edit1.Text + eingabe;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
eingabe := '5';
Edit1.Text := Edit1.Text + eingabe;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
eingabe := '6';
Edit1.Text := Edit1.Text + eingabe;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
eingabe := '7';
Edit1.Text := Edit1.Text + eingabe;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
eingabe := '8';
Edit1.Text := Edit1.Text + eingabe;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
eingabe := '9';
Edit1.Text := Edit1.Text + eingabe;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
eingabe := '0';
Edit1.Text := Edit1.Text + eingabe;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
eingabe := Edit1.Text;
eingabe1 := StrToInt(eingabe);
Edit1.Text := '';
aufgabe := '+';
end;

procedure TForm1.Button11Click(Sender: TObject);
var
Ergebniss:Integer;
begin
eingabe2 := StrToInt(Edit1.Text);
Edit1.Text := '';
Ergebniss:=eingabe1 + status + eingabe2;
Edit1.Text := IntToStr(Ergebniss);
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
eingabe := Edit1.Text;
eingabe1 := StrToInt(eingabe);
Edit1.Text := '';
aufgabe := '-';
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
eingabe := Edit1.Text;
eingabe1 := StrToInt(eingabe);
Edit1.Text := '';
aufgabe := '*';
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
eingabe := Edit1.Text;
eingabe1 := StrToInt(eingabe);
Edit1.Text := '';
aufgabe := '/';
end;

end.


Alpha_Wolf - Fr 12.10.07 15:30


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
  lErgebnis: double;
  lWert1: double;
  lWert2: double;
begin
  lWert1 := 5.0;
  lWert2 := 2.0;

  // Addieren
  lErgebnis := lWert1 + lWert2;

  // Multiplizieren
  lErgebnis := lWert1 * lWert2;

  // Dividieren
  lErgebnis := Wert1 / Wert2;


Du darfst den Operator nicht als String deklarieren.. du schreibst ja zB.: '/' << das wird als String interpretiert..
Bin grad ein wenig emotionslos.. also entschuldige, aber schreib doch für jede Rechenart eine eigene Funktion in der du dann Wert1 und Wert2 übergibst und das Ergebnis zurücklieferst. Achtung ich arbeite hier nicht mit integern sondern mit double.. schließlich kann beim teilen auch mal ein Gleitkommawert rauskommen.

Irgendwie sowas:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
function Addiere(Wert1, Wert2: double): string;
begin
  result := FloatToStr(Wert1 + Wert2);
end;

// Aufruf:
.
.
Ergebnis := Addiere(FloatToStr(Wert1), FloatToStr(Wert2);
.
.

Achtung! Der Code ist frei aus dem Kopf heraus geschrieben und besitzt keine Validierungen etc. (außerdem bin ich fast im WE) *g*

Bitte sieh dir anderen Taschenrechner an.. und einfach mal die Grundlagen.. da wird alles sehr gut beschrieben.. auch die Grundrechenarten etc.

Ps.: Neue Frage, Neues Thema.. bitte beachten!