Einzelnen Beitrag anzeigen

biby90
(Gast)

n/a Beiträge
 
#20

AW: Taschenrechner : ' ' ist kein Gleitkommawert

  Alt 29. Jul 2011, 16:37
da habt ihr mal den ganzen QT
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    txt_rechnung: TEdit;
    cmd_7: TButton;
    Label1: TLabel;
    cmd_clear: TButton;
    cmd_div: TButton;
    cmd_gleich: TButton;
    cmd_0: TButton;
    cmd_komma: TButton;
    cmd_1: TButton;
    cmd_2: TButton;
    cmd_3: TButton;
    cmd_mul: TButton;
    cmd_6: TButton;
    cmd_5: TButton;
    cmd_4: TButton;
    cmd_add: TButton;
    cmd_9: TButton;
    cmd_8: TButton;
    cmd_sub: TButton;
    procedure cmd_clearClick(Sender: TObject);
    procedure cmd_2Click(Sender: TObject);
    procedure cmd_3Click(Sender: TObject);
    procedure cmd_4Click(Sender: TObject);
    procedure cmd_5Click(Sender: TObject);
    procedure cmd_6Click(Sender: TObject);
    procedure cmd_7Click(Sender: TObject);
    procedure cmd_8Click(Sender: TObject);
    procedure cmd_9Click(Sender: TObject);
    procedure cmd_0Click(Sender: TObject);
    procedure cmd_divClick(Sender: TObject);
    procedure cmd_mulClick(Sender: TObject);
    procedure cmd_subClick(Sender: TObject);
    procedure cmd_addClick(Sender: TObject);
    procedure cmd_gleichClick(Sender: TObject);
    procedure cmd_kommaClick(Sender: TObject);
    Procedure Rechenarten;
    procedure cmd_1Click(Sender: TObject);

  private
    function IsValidFloat(AValue1: String): Boolean;


  public
{ Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Rechenart: Integer;
  Speicher: Real;
  GZahl: array[0..9] of Integer;

const
  GZahl0 = 0;
  GZahl1 = 1;
  GZahl2 = 2;
  GZahl3 = 3;
  GZahl4 = 4;
  GZahl5 = 5;
  GZahl6 = 6;
  GZahl7 = 7;
  GZahl8 = 8;
  GZahl9 = 9;


implementation

{$R *.dfm}

procedure TForm1.cmd_0Click(Sender: TObject);
begin
  txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl0);
end;

procedure TForm1.cmd_1Click(Sender: TObject);
begin
  txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl1);
end;

procedure TForm1.cmd_2Click(Sender: TObject);
begin
  txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl2);
end;

procedure TForm1.cmd_3Click(Sender: TObject);
begin
  txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl3);
end;

procedure TForm1.cmd_4Click(Sender: TObject);
begin
  txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl4);
end;

procedure TForm1.cmd_5Click(Sender: TObject);
begin
  txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl5);
end;

procedure TForm1.cmd_6Click(Sender: TObject);
begin
  txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl6);
end;

procedure TForm1.cmd_7Click(Sender: TObject);
begin
  txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl7);
end;

procedure TForm1.cmd_8Click(Sender: TObject);
begin
  txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl8);
end;

procedure TForm1.cmd_9Click(Sender: TObject);
begin
  txt_rechnung.Text := txt_rechnung.Text + IntToStr (GZahl9);
end;

procedure TForm1.cmd_addClick(Sender: TObject);
begin
  label1.Caption := '+';
  Rechenarten;
  Rechenart := 1;
  Speicher := StrToFloat(txt_Rechnung.Text);
  txt_rechnung.text := '';
end;

procedure TForm1.cmd_clearClick(Sender: TObject);
begin
  txt_rechnung.Clear;
  label1.caption := '';
  Speicher := 0;
  Rechenart := 0;
end;

procedure TForm1.cmd_divClick(Sender: TObject);
begin
  label1.Caption := '/' ;
  Rechenarten;
  Rechenart := 4;
  Speicher := StrToFloat(txt_Rechnung.Text);
  txt_rechnung.text := '';
end;

procedure TForm1.cmd_mulClick(Sender: TObject);
begin
  label1.Caption := '*' ;
  Rechenarten;
  Rechenart := 3;
  Speicher := StrToFloat(txt_Rechnung.Text);
  txt_rechnung.text := '';
end;

procedure TForm1.cmd_subClick(Sender: TObject);
begin
  label1.Caption := '-' ;
  Rechenarten;
  Rechenart := 2;
  Speicher := StrToFloat(txt_Rechnung.Text);
  txt_rechnung.Text := '';
end;

function TForm1.IsValidFloat(AValue1: String): Boolean;
 var
   i: Integer;
 begin

  Result := false;
     {
     Gegeben: String, Gesucht: Boolean}


    if AValue1 <> 'then
     begin
       for i := 0 to Length(AValue1) do
       begin
         if AValue1[i] in ['0'..'9', ','] then
           begin
             Result := true;
           end;
       end;
     end else
      begin
       ShowMessage('String ist leer.');
      end;
 end;

procedure TForm1.Rechenarten;
begin
  IsValidFloat(txt_rechnung.text);

  case Rechenart of
    0:
    begin
      Speicher := StrToFloat(txt_rechnung.Text);
    end;
    1:
    begin
      Speicher := Speicher + StrToFloat(txt_rechnung.text);
    end;
    2:
    begin
      Speicher := Speicher - StrToFloat(txt_rechnung.text);
    end;
    3:
    begin
      Speicher := Speicher * StrToFloat(txt_rechnung.text);
    end;
    4:
    begin
      Speicher := Speicher / StrToFloat(txt_rechnung.text);
    end;
  end;
end;

procedure TForm1.cmd_gleichClick(Sender: TObject);
begin
  Rechenarten;
  txt_rechnung.text := FloatToStr(Speicher);
  Speicher := 0;
  Rechenart := 0;
end;

procedure TForm1.cmd_kommaClick(Sender: TObject);
begin
  txt_rechnung.Text := txt_rechnung.Text + ',';
end;

end.
  Mit Zitat antworten Zitat