1 | Project1:
|
2 | program Project1;
|
3 |
|
4 | uses
|
5 | Forms,
|
6 | Unit1 in 'Unit1.pas' {Form1};
|
7 |
|
8 | {$R *.res}
|
9 |
|
10 | begin
|
11 | Application.Initialize;
|
12 | Application.CreateForm(TForm1, Form1);
|
13 | Application.Run;
|
14 |
|
15 | end.
|
16 |
|
17 | Unit1:
|
18 |
|
19 | unit Unit1;
|
20 |
|
21 | interface
|
22 |
|
23 | uses
|
24 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
25 | Buttons, StdCtrls, ExtCtrls;
|
26 |
|
27 | type
|
28 | TForm1 = class(TForm)
|
29 | Edit1: TEdit;
|
30 | Speedbutton1: TButton;
|
31 | Speedbutton2: TButton;
|
32 | Speedbutton3: TButton;
|
33 | Speedbutton4: TButton;
|
34 | Speedbutton5: TButton;
|
35 | Speedbutton6: TButton;
|
36 | Speedbutton7: TButton;
|
37 | Speedbutton8: TButton;
|
38 | Speedbutton9: TButton;
|
39 | Speedbutton10: TButton;
|
40 | ButtonMinus: TButton;
|
41 | Speedbutton11: TButton;
|
42 | procedure SpeedButton1Click(Sender: TObject);
|
43 | procedure SpeedButton2Click(Sender: TObject);
|
44 | procedure SpeedButton3Click(Sender: TObject);
|
45 | procedure SpeedButton4Click(Sender: TObject);
|
46 | procedure SpeedButton5Click(Sender: TObject);
|
47 | procedure SpeedButton6Click(Sender: TObject);
|
48 | procedure SpeedButton7Click(Sender: TObject);
|
49 | procedure SpeedButton8Click(Sender: TObject);
|
50 | procedure SpeedButton9Click(Sender: TObject);
|
51 | procedure SpeedButton10Click(Sender: TObject);
|
52 | procedure SpeedButton11Click(Sender: TObject);
|
53 | procedure SpeedButton12Click(Sender: TObject);
|
54 | procedure SpeedButton13Click(Sender: TObject);
|
55 | procedure BitBtn2Click(Sender: TObject);
|
56 | procedure SpeedButton14Click(Sender: TObject);
|
57 | procedure SpeedButton15Click(Sender: TObject);
|
58 | procedure SpeedButton16Click(Sender: TObject);
|
59 | procedure SpeedButton17Click(Sender: TObject);
|
60 | procedure SpeedButton18Click(Sender: TObject);
|
61 | procedure SpeedButton19Click(Sender: TObject);
|
62 | private
|
63 | { Private-Deklarationen }
|
64 | public
|
65 | { Public-Deklarationen }
|
66 | end;
|
67 |
|
68 | var
|
69 | Form1: TForm1;
|
70 |
|
71 | implementation
|
72 | var Zahl: String;
|
73 | x, Zwischenergebnis: real;
|
74 | Operation: Integer;
|
75 | {$R *.DFM}
|
76 |
|
77 | procedure TForm1.SpeedButton1Click(Sender: TObject);
|
78 | begin
|
79 | Edit1.text := Edit1.Text + SpeedButton1.Caption;
|
80 | Zahl := Edit1.Text;
|
81 | x := StrToFloat(Zahl);
|
82 | end;
|
83 |
|
84 | procedure TForm1.SpeedButton2Click(Sender: TObject);
|
85 | begin
|
86 | Edit1.text := Edit1.Text + SpeedButton2.Caption;
|
87 | Zahl := Edit1.Text;
|
88 | x := StrToFloat(Zahl);
|
89 |
|
90 | end;
|
91 |
|
92 | procedure TForm1.SpeedButton3Click(Sender: TObject);
|
93 | begin
|
94 | Edit1.text := Edit1.Text + SpeedButton3.Caption;
|
95 | Zahl := Edit1.Text;
|
96 | x := StrToFloat(Zahl);
|
97 |
|
98 | end;
|
99 |
|
100 | procedure TForm1.SpeedButton4Click(Sender: TObject);
|
101 | begin
|
102 | Edit1.text := Edit1.Text + SpeedButton4.Caption;
|
103 | Zahl := Edit1.Text;
|
104 | x := StrToFloat(Zahl);
|
105 |
|
106 | end;
|
107 |
|
108 | procedure TForm1.SpeedButton5Click(Sender: TObject);
|
109 | begin
|
110 | Edit1.text := Edit1.Text + SpeedButton5.Caption;
|
111 | Zahl := Edit1.Text;
|
112 | x := StrToFloat(Zahl);
|
113 |
|
114 | end;
|
115 |
|
116 | procedure TForm1.SpeedButton6Click(Sender: TObject);
|
117 | begin
|
118 | Edit1.text := Edit1.Text + SpeedButton6.Caption;
|
119 | Zahl := Edit1.Text;
|
120 | x := StrToFloat(Zahl);
|
121 |
|
122 | end;
|
123 |
|
124 | procedure TForm1.SpeedButton7Click(Sender: TObject);
|
125 | begin
|
126 | Edit1.text := Edit1.Text + SpeedButton7.Caption;
|
127 | Zahl := Edit1.Text;
|
128 | x := StrToFloat(Zahl);
|
129 |
|
130 | end;
|
131 |
|
132 | procedure TForm1.SpeedButton8Click(Sender: TObject);
|
133 | begin
|
134 | Edit1.text := Edit1.Text + SpeedButton8.Caption;
|
135 | Zahl := Edit1.Text;
|
136 | x := StrToFloat(Zahl);
|
137 |
|
138 | end;
|
139 |
|
140 | procedure TForm1.SpeedButton9Click(Sender: TObject);
|
141 | begin
|
142 | Edit1.text := Edit1.Text + SpeedButton9.Caption;
|
143 | Zahl := Edit1.Text;
|
144 | x := StrToFloat(Zahl);
|
145 |
|
146 | end;
|
147 |
|
148 | procedure TForm1.SpeedButton10Click(Sender: TObject);
|
149 | begin
|
150 | Edit1.text := Edit1.Text + SpeedButton10.Caption;
|
151 | Zahl := Edit1.Text;
|
152 | x := StrToFloat(Zahl);
|
153 |
|
154 | end;
|
155 |
|
156 | procedure TForm1.SpeedButton11Click(Sender: TObject);
|
157 | begin
|
158 | if Pos(',',Edit1.Text) = 0 then
|
159 | begin
|
160 | Edit1.text := Edit1.Text + SpeedButton11.Caption;
|
161 | Zahl := Edit1.Text;
|
162 | x := StrToFloat(Zahl);
|
163 | end;
|
164 | end;
|
165 |
|
166 | procedure TForm1.SpeedButton12Click(Sender: TObject);
|
167 | begin
|
168 | if Operation = 0 then Zwischenergebnis := x;
|
169 | If Operation = 1 then Zwischenergebnis := Zwischenergebnis + x;
|
170 | If Operation = 2 Then Zwischenergebnis := Zwischenergebnis - x;
|
171 | If Operation = 3 Then Zwischenergebnis := Zwischenergebnis * x;
|
172 | If Operation = 4 Then
|
173 | begin
|
174 | if x <> 0
|
175 | then Zwischenergebnis := Zwischenergebnis / x
|
176 | else ShowMessage('Bitte keine Division durch Null!');
|
177 | end;
|
178 | Operation := 0; // letzte Operation ist keine
|
179 | x := Zwischenergebnis;
|
180 | Edit1.Text := FloatToStr(Zwischenergebnis);
|
181 | end;
|
182 |
|
183 | procedure TForm1.SpeedButton13Click(Sender: TObject);
|
184 | begin
|
185 | if Operation = 0 then Zwischenergebnis := x;
|
186 | If Operation = 1 then Zwischenergebnis := Zwischenergebnis + x;
|
187 | If Operation = 2 Then Zwischenergebnis := Zwischenergebnis - x;
|
188 | If Operation = 3 Then Zwischenergebnis := Zwischenergebnis * x;
|
189 | If Operation = 4 Then
|
190 | begin
|
191 | if x <> 0
|
192 | then Zwischenergebnis := Zwischenergebnis / x
|
193 | else ShowMessage('Bitte keine Division durch Null!');
|
194 | end;
|
195 | Edit1.Text := '';
|
196 | x := 0;
|
197 | Operation := 1; // letzte Operation ist Plus
|
198 | end;
|
199 |
|
200 | procedure TForm1.BitBtn2Click(Sender: TObject);
|
201 | begin
|
202 | Zwischenergebnis := 0;
|
203 | Edit1.Text := '';
|
204 | x := 0;
|
205 | Operation := 0; // keine Operation
|
206 |
|
207 | end;
|
208 |
|
209 | procedure TForm1.SpeedButton14Click(Sender: TObject);
|
210 | begin
|
211 | if Operation = 0 then Zwischenergebnis := x;
|
212 | If Operation = 1 Then Zwischenergebnis := Zwischenergebnis + x;
|
213 | If Operation = 2 then Zwischenergebnis := Zwischenergebnis - x;
|
214 | If Operation = 3 Then Zwischenergebnis := Zwischenergebnis * x;
|
215 | If Operation = 4 Then
|
216 | begin
|
217 | if x <> 0
|
218 | then Zwischenergebnis := Zwischenergebnis / x
|
219 | else ShowMessage('Bitte keine Division durch Null!');
|
220 | end;
|
221 | Edit1.Text := '';
|
222 | x := 0;
|
223 | Operation := 2; // letzte Operation ist Minus
|
224 |
|
225 | end;
|
226 |
|
227 | procedure TForm1.SpeedButton15Click(Sender: TObject);
|
228 | begin
|
229 | if Operation = 0 then Zwischenergebnis := x;
|
230 | If Operation = 1 Then Zwischenergebnis := Zwischenergebnis + x;
|
231 | If Operation = 2 Then Zwischenergebnis := Zwischenergebnis - x;
|
232 | If Operation = 3 Then Zwischenergebnis := Zwischenergebnis * x;
|
233 | If Operation = 4 Then
|
234 | begin
|
235 | if x <> 0
|
236 | then Zwischenergebnis := Zwischenergebnis / x
|
237 | else ShowMessage('Bitte keine Division durch Null!');
|
238 | end;
|
239 | Edit1.Text := '';
|
240 | x := 0;
|
241 | Operation := 3; // letzte Operation ist Mal
|
242 | end;
|
243 |
|
244 | procedure TForm1.SpeedButton16Click(Sender: TObject);
|
245 | begin
|
246 | if Operation = 0 then Zwischenergebnis := x;
|
247 | If Operation = 1 Then Zwischenergebnis := Zwischenergebnis + x;
|
248 | If Operation = 2 Then Zwischenergebnis := Zwischenergebnis - x;
|
249 | If Operation = 3 Then Zwischenergebnis := Zwischenergebnis * x;
|
250 | If Operation = 4
|
251 | Then
|
252 | begin
|
253 | if x <> 0
|
254 | then Zwischenergebnis := Zwischenergebnis / x
|
255 | else ShowMessage('Bitte keine Division durch Null!');
|
256 | end;
|
257 |
|
258 | Edit1.Text := '';
|
259 | x := 0;
|
260 | Operation := 4; // letzte Operation ist Teilen
|
261 |
|
262 | end;
|
263 |
|
264 | procedure TForm1.SpeedButton17Click(Sender: TObject);
|
265 | begin
|
266 | (* Vorzeichenwechsel *)
|
267 | x := StrToFloat(Edit1.Text);
|
268 | x := -x;
|
269 | Edit1.text := FloatToStr(x);
|
270 | Zahl := Edit1.Text;
|
271 |
|
272 | end;
|
273 |
|
274 | procedure TForm1.SpeedButton18Click(Sender: TObject);
|
275 | begin
|
276 | (* Kehrwert, aber nur, wenn ungleich Null *)
|
277 | if x <> 0 then
|
278 | begin
|
279 | x := StrToFloat(Edit1.Text);
|
280 | x := 1/x;
|
281 | Edit1.text := FloatToStr(x);
|
282 | Zahl := Edit1.Text;
|
283 | end
|
284 | else
|
285 | ShowMessage('Von Null gibt es keinen Kehrwert!');
|
286 | end;
|
287 |
|
288 | procedure TForm1.SpeedButton19Click(Sender: TObject);
|
289 | var i,j: Integer;
|
290 | begin
|
291 | (* letztes Zeichen löschen, wenn es existiert *)
|
292 |
|
293 | (* Vorzeichen Minus? - Das darf nicht allein stehen bleiben! *)
|
294 | j := 0;
|
295 | if Copy(Edit1.Text,1,1) = '-' then j := 1;
|
296 |
|
297 | (* Zeichenanzahl *)
|
298 | i := length(Edit1.Text);
|
299 | if i > 1 + j then
|
300 | begin
|
301 | (* alle Zeichen vom 1. bis zum vorletzten *)
|
302 | Edit1.text := Copy(Edit1.Text,1,i-1);
|
303 | Zahl := Edit1.Text;
|
304 | x := StrToFloat(Zahl);
|
305 | end;
|
306 | end;
|
307 |
|
308 | end.
|