Entwickler-Ecke

Sonstiges (Delphi) - boolean?


Rage - So 27.02.05 02:11
Titel: boolean?
hi leuts, ich war gerade dabei ein einfaches rechenprogramm zu schreiben, aber zwei sachen laufen jet

1: ich habe 4 buttons angelegt mit den vier grundrechenzeichen, wenn man auf diese klickt werden aber nur ihre entsprechenden rechenzeichen (+ - * /) zwischen die 2 zahlen eingefügt (soll auch so sein)
so dann habe ich ein button angelegt der folgendes machen soll, der button überprüft zuerst welches rechenzeichen zwischen den 2 zahlen steht (also welches vom user ausgewält wurde und rechnet dan dementsprechen das ergebnis aus.
also so.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
IF Labe1.Caption := '+';
then 
begin
zahl1 := StrToInt(edit1.text);
zahl2 := StrToInt (edit2.text);
ergebnis := zahl1 + zahl2;
Label2.Caption := IntToStr(ergebnis);
end;

IF Labe1.Caption := '-';
then 
begin
zahl1 := StrToInt(edit1.text);
zahl2 := StrToInt (edit2.text);
ergebnis := zahl1 - zahl2;
Label2.Caption := IntToStr(ergebnis);
end;



so Label1 is das feld zwischen den zwei zahlen un label2 das feld wo das ergebnis drin stehn soll, jet kommt beim starten aber da "then" ein fehler und er sagt mir das boolean erwartet wird....was heisst den das? was muss ich da machen? ich weiss nur das boolean ja oder nein prüft....

2: die rechenoperation "/" funktioniert garnicht....ich konnte herausfinden das man da die variable real benutzen muss und StrToFloat statt StrToInt aber da kommen nur dumme ergebnise raus

Bitte um Hilfe
MFG Rage

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt.


wulfskin - So 27.02.05 02:17

Hallo,

so gehts:

  1. Delphi-Quelltext
    1:
    if Label1.Caption = '+' then {tu was};  //(= Vergleich); (:= Zuweisung)                    
  2. Beispiel:

    Delphi-Quelltext
    1:
    2:
    3:
    4:
    5:
    6:
    7:
    8:
    var
      E: Extended; //Kommazahl mit geringen Rundungsfehlern;
    begin
      E := StrToFloat(Edit1.Text) / StrToFloat(Edit2.Text);
      Label2.Caption := FloatToStr(E);
      //oder auf 2 Deizmalen gerunden
      //Label2.CAption := format('%.2f', [E]);
    end;
Für ganzzahle Division ohne Rest, kannst du auch div benutzen.

Gruß Hape!


sourcehunter - So 27.02.05 12:29

Du musst das Semikolon am Ende der If-Zeile wegnehmen und das Then auf die gleiche Zeile schreiben, dann dürfte es funktionieren. Aber aufpassen, dass du nach dem Then kein Semikolon setzt.


delfiphan - So 27.02.05 13:05

Bevor du anfängst drauflos zu programmieren, solltest du dich mit dem Delphi Syntax auseinandersetzen.. Oder ist das ein Flüchtigkeitsfehler?

Delphi-Quelltext
1:
2:
3:
4:
if a = b then
begin
 //...
end;


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
if a = b then
begin
 // ...
end else
begin
 // ...
end;


Nicolas G. - So 27.02.05 13:05

also ich würde so ein programm nicht mit buttons sondern mit einer Radio-group schreiben.
Ist viel einfacher uns übersichtlicher. Dann kann man die einzelnen rechenarten in der Radiogroup definieren, dann z.B
if radiogroup1.itemindex =0 then a+b;
if radiogroup1.itemindex =1 then a-b;

Ich würde sagen das es so gehen müsse.


delfiphan - So 27.02.05 13:07

Das ist schon der dritte oder vierte Thread zum Thema "Taschenrechner" innert einer Woche oder so ;)