Entwickler-Ecke

Sonstiges (Delphi) - Problem mit Delphi Taschenrechner


NinjaKurtel - So 14.01.07 13:33
Titel: Problem mit Delphi Taschenrechner
Hi

Habe einen Taschenrechner mit Delphi programmiert, aber der funzt net witklich und da wollte ich fragen, ob ihr ihn eich mal anschauen könntet und mir vielleicht sagen, was ich falsch gemacht habe.

MFG NinjaKurtel


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:
unit Unit1;

interface

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

type
...

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Rechner: TRechner;

implementation

{$R *.DFM}

procedure TForm1.FormCreate (Sender: Tobject);
begin
  Rechner:=TRechner.create;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  edit1.text := edit1.text + '1';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  edit1.text := edit1.text + '2';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  edit1.text := edit1.text + '3';
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  edit1.text := edit1.text + '4';
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  edit1.text := edit1.text + '5';
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  edit1.text := edit1.text + '6';
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  edit1.text := edit1.text + '7';
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  edit1.text := edit1.text + '8';
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  edit1.text := edit1.text + '9';
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
  edit1.text := edit1.text + '0';
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  Rechner.SetRechenzahl1(strtoint(edit1.text));
  Rechner.SetRechenzahl2('+');
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
  Rechner.SetRechenzahl1(strtoint(edit1.text));
  Rechner.SetRechenzahl2('-');
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  Rechner.SetRechenzahl1(strtoint(edit1.text));
  Rechner.SetRechenzahl2('*');
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
  Rechner.SetRechenzahl1(strtoint(edit1.text));
  Rechner.SetRechenzahl2('/');
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
  Rechner.SetRechenzahl2(strtoint(edit1.text));
  Rechner.Rechne;
  edit1.text:= inttostr(Rechner.ergebnis);
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
  edit1.clear;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
  Rechner.del;
end;

procedure TForm1.Button18Click(Sender: TObject);
begin
  close;
end;

end.



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:
unit Unit2;

interface

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

type
  Tt1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

TZahl= class(Tobject)
private
  FZahl: integer;
public
  procedure SetZahl(Zahl: integer);
  function GetZahl: integer;
end;

implementation

function TZahl.GetZahl: integer;
begin
  result:= FZahl;
end;

procedure TZahl.SetZahl(Zahl: integer);
begin
  FZahl:=Zahl;
end;

end.



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:
unit Unit3;

interface

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

type
  TForm2= class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
  TRechner= class(TObject);
  private
    FRechenZahl1: integer;
    FRechenZahl2: integer;
    FErgebnis: integer;
    FRechenzeichen: char;
  public
    procedure SetRechenzahl1(Zahl: integer);
    procedure SetRechenzahl2(Zahl: integer);
    procedure SetRechenzeichen(Zeichen: char);
    procedure Rechne;
    procedure del;
    function ausgabe: integer;
    constructor create;
end;

var
  Form2: TForm2;

implementation

procedure TRechner.Rechne;
begin
case FRechenzeichen of
  '+': FErgebnis:= FRechenzahl + FRechenzahl2;
  '-': FErgebnis:= FRechenzahl - FRechenzahl2;
  '*': FErgebnis:= FRechenzahl * FRechenzahl2;
  '/': FErgebnis:= FRechenzahl / FRechenzahl2;
end;

procedure TRechner.SetRechenzahl1(Zahl: integer);
begin
  FRechenzahl1:= Zahl;
end;

procedure TRechner.SetRechenzahl2(Zahl: integer);
begin
  FRechenzahl2:= Zahl;
end;

procedure TRechner.SetRechenzeichen(Zeichen: char);
begin
  FRechenzeichen:= Zeichen;
end;

function TRechner.Ergebnis:integer;
begin
  result:=FErgebnis;
end;

procedure TRechner.del;
begin
  FRechenzahl1:=0;
  FRechenzahl2:=0;
  FErgebnis:=0;
end;

constructor TRechner.create;
begin
  inherited Create;
end;

end.


Also der startet bei mir erst gar nicht das programm, das Poblem ist, dass er an vielen verschiedenen Stellen meckert. Also ich bin nicht wirklich der Pro in sowas, deswegen hoffe ich ihr könnt mir helfen.


Christian S. - So 14.01.07 13:36

Hallo!

Bitte füge den relevanten Sourcecode direkt in Deinen Beitrag ein, indem Du ihn mit Delphi-Tags umgibst (siehe Hilfe [http://www.delphi-forum.de/help_schreiben_bbcodes_source.html&sub=,19,27,32&popup=1]). Außerdem solltest Du auch sagen, was nicht funktioniert.

Grüße
Christian


Tilo - So 14.01.07 16:21

Fehlerhaft ist unterandem der Code für die RechenartenBUtton
Ein Auschnitt:

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Button12Click(Sender: TObject);
begin
  Rechner.SetRechenzahl1(strtoint(edit1.text));
  Rechner.SetRechenzahl2('+');
end;


besserwäre deinen Code nach


Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Button12Click(Sender: TObject);
begin
  Rechner.SetRechenzahl1(strtoint(edit1.text));
  Rechner.SetRechenzeichen('+');
end;