www.mikrocontroller.net

Forum: Gesperrte Threads Schnelle Hilfe beim Programmieren eines Taschenrechners in Delphi7


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Hans (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Project1:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
  
end.

Unit1:

  unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Speedbutton1: TButton;
    Speedbutton2: TButton;
    Speedbutton3: TButton;
    Speedbutton4: TButton;
    Speedbutton5: TButton;
    Speedbutton6: TButton;
    Speedbutton7: TButton;
    Speedbutton8: TButton;
    Speedbutton9: TButton;
    Speedbutton10: TButton;
    ButtonMinus: TButton;
    Speedbutton11: TButton;
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject); 
    procedure SpeedButton3Click(Sender: TObject); 
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject); 
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject); 
    procedure SpeedButton8Click(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure SpeedButton10Click(Sender: TObject);
    procedure SpeedButton11Click(Sender: TObject); 
    procedure SpeedButton12Click(Sender: TObject);
    procedure SpeedButton13Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject); 
    procedure SpeedButton14Click(Sender: TObject); 
    procedure SpeedButton15Click(Sender: TObject); 
    procedure SpeedButton16Click(Sender: TObject); 
    procedure SpeedButton17Click(Sender: TObject); 
    procedure SpeedButton18Click(Sender: TObject); 
    procedure SpeedButton19Click(Sender: TObject); 
  private 
    { Private-Deklarationen } 
  public 
    { Public-Deklarationen } 
  end; 

var 
  Form1: TForm1; 

implementation 
    var Zahl: String; 
        x, Zwischenergebnis: real; 
        Operation: Integer; 
{$R *.DFM} 

procedure TForm1.SpeedButton1Click(Sender: TObject); 
begin
     Edit1.text := Edit1.Text + SpeedButton1.Caption;
     Zahl := Edit1.Text; 
     x := StrToFloat(Zahl); 
end; 

procedure TForm1.SpeedButton2Click(Sender: TObject); 
begin
     Edit1.text := Edit1.Text + SpeedButton2.Caption;
     Zahl := Edit1.Text; 
     x := StrToFloat(Zahl); 

end;

procedure TForm1.SpeedButton3Click(Sender: TObject); 
begin
     Edit1.text := Edit1.Text + SpeedButton3.Caption;
     Zahl := Edit1.Text;
     x := StrToFloat(Zahl);

end; 

procedure TForm1.SpeedButton4Click(Sender: TObject); 
begin
     Edit1.text := Edit1.Text + SpeedButton4.Caption;
     Zahl := Edit1.Text; 
     x := StrToFloat(Zahl); 

end; 

procedure TForm1.SpeedButton5Click(Sender: TObject); 
begin
     Edit1.text := Edit1.Text + SpeedButton5.Caption;
     Zahl := Edit1.Text; 
     x := StrToFloat(Zahl); 

end; 

procedure TForm1.SpeedButton6Click(Sender: TObject); 
begin
     Edit1.text := Edit1.Text + SpeedButton6.Caption;
     Zahl := Edit1.Text; 
     x := StrToFloat(Zahl); 

end; 

procedure TForm1.SpeedButton7Click(Sender: TObject); 
begin
     Edit1.text := Edit1.Text + SpeedButton7.Caption;
     Zahl := Edit1.Text; 
     x := StrToFloat(Zahl); 

end;

procedure TForm1.SpeedButton8Click(Sender: TObject); 
begin
     Edit1.text := Edit1.Text + SpeedButton8.Caption;
     Zahl := Edit1.Text; 
     x := StrToFloat(Zahl); 

end; 

procedure TForm1.SpeedButton9Click(Sender: TObject); 
begin
     Edit1.text := Edit1.Text + SpeedButton9.Caption;
     Zahl := Edit1.Text; 
     x := StrToFloat(Zahl); 

end; 

procedure TForm1.SpeedButton10Click(Sender: TObject); 
begin
     Edit1.text := Edit1.Text + SpeedButton10.Caption;
     Zahl := Edit1.Text; 
     x := StrToFloat(Zahl); 

end; 

procedure TForm1.SpeedButton11Click(Sender: TObject); 
begin 
     if Pos(',',Edit1.Text) = 0 then 
     begin
       Edit1.text := Edit1.Text + SpeedButton11.Caption;
       Zahl := Edit1.Text; 
       x := StrToFloat(Zahl); 
     end; 
end; 

procedure TForm1.SpeedButton12Click(Sender: TObject); 
begin 
     if Operation = 0 then Zwischenergebnis := x; 
     If Operation = 1 then Zwischenergebnis := Zwischenergebnis + x; 
     If Operation = 2 Then Zwischenergebnis := Zwischenergebnis - x;
     If Operation = 3 Then Zwischenergebnis := Zwischenergebnis * x; 
     If Operation = 4 Then 
         begin 
            if x <> 0 
            then Zwischenergebnis := Zwischenergebnis / x 
            else ShowMessage('Bitte keine Division durch Null!'); 
         end; 
     Operation := 0; // letzte Operation ist keine 
     x := Zwischenergebnis; 
     Edit1.Text := FloatToStr(Zwischenergebnis); 
end; 

procedure TForm1.SpeedButton13Click(Sender: TObject); 
begin 
     if Operation = 0 then Zwischenergebnis := x; 
     If Operation = 1 then Zwischenergebnis := Zwischenergebnis + x; 
     If Operation = 2 Then Zwischenergebnis := Zwischenergebnis - x; 
     If Operation = 3 Then Zwischenergebnis := Zwischenergebnis * x; 
     If Operation = 4 Then 
         begin
            if x <> 0 
            then Zwischenergebnis := Zwischenergebnis / x 
            else ShowMessage('Bitte keine Division durch Null!'); 
         end; 
     Edit1.Text := ''; 
     x := 0; 
     Operation := 1; // letzte Operation ist Plus 
end; 

procedure TForm1.BitBtn2Click(Sender: TObject); 
begin 
     Zwischenergebnis := 0; 
     Edit1.Text := ''; 
     x := 0; 
     Operation := 0; // keine Operation 

end; 

procedure TForm1.SpeedButton14Click(Sender: TObject); 
begin
     if Operation = 0 then Zwischenergebnis := x; 
     If Operation = 1 Then Zwischenergebnis := Zwischenergebnis + x; 
     If Operation = 2 then Zwischenergebnis := Zwischenergebnis - x; 
     If Operation = 3 Then Zwischenergebnis := Zwischenergebnis * x; 
     If Operation = 4 Then 
         begin 
            if x <> 0 
            then Zwischenergebnis := Zwischenergebnis / x
            else ShowMessage('Bitte keine Division durch Null!');
         end;
     Edit1.Text := '';
     x := 0;
     Operation := 2; // letzte Operation ist Minus

end;

procedure TForm1.SpeedButton15Click(Sender: TObject);
begin
     if Operation = 0 then Zwischenergebnis := x;
     If Operation = 1 Then Zwischenergebnis := Zwischenergebnis + x;
     If Operation = 2 Then Zwischenergebnis := Zwischenergebnis - x;
     If Operation = 3 Then Zwischenergebnis := Zwischenergebnis * x;
     If Operation = 4 Then
         begin
            if x <> 0
            then Zwischenergebnis := Zwischenergebnis / x
            else ShowMessage('Bitte keine Division durch Null!');
         end;
     Edit1.Text := '';
     x := 0;
     Operation := 3; // letzte Operation ist Mal
end;

procedure TForm1.SpeedButton16Click(Sender: TObject);
begin
     if Operation = 0 then Zwischenergebnis := x;
     If Operation = 1 Then Zwischenergebnis := Zwischenergebnis + x;
     If Operation = 2 Then Zwischenergebnis := Zwischenergebnis - x;
     If Operation = 3 Then Zwischenergebnis := Zwischenergebnis * x;
     If Operation = 4
     Then
         begin
            if x <> 0
            then Zwischenergebnis := Zwischenergebnis / x
            else ShowMessage('Bitte keine Division durch Null!');
         end;

     Edit1.Text := '';
     x := 0;
     Operation := 4; // letzte Operation ist Teilen

end;

procedure TForm1.SpeedButton17Click(Sender: TObject);
begin
     (* Vorzeichenwechsel *)
     x := StrToFloat(Edit1.Text);
     x := -x;
     Edit1.text := FloatToStr(x);
     Zahl := Edit1.Text;

end;

procedure TForm1.SpeedButton18Click(Sender: TObject);
begin
     (* Kehrwert, aber nur, wenn ungleich Null *)
     if x <> 0 then
     begin
       x := StrToFloat(Edit1.Text);
       x := 1/x;
       Edit1.text := FloatToStr(x);
       Zahl := Edit1.Text;
     end
     else
     ShowMessage('Von Null gibt es keinen Kehrwert!');
end;

procedure TForm1.SpeedButton19Click(Sender: TObject);
   var i,j: Integer;
begin
     (* letztes Zeichen löschen, wenn es existiert *)

     (* Vorzeichen  Minus? - Das darf nicht allein stehen bleiben! *)
     j := 0;
     if Copy(Edit1.Text,1,1) = '-' then j := 1;

     (* Zeichenanzahl *)
     i := length(Edit1.Text);
     if i > 1 + j then
     begin
       (* alle Zeichen vom 1. bis zum vorletzten *)
       Edit1.text := Copy(Edit1.Text,1,i-1);
       Zahl := Edit1.Text;
       x := StrToFloat(Zahl);
     end;
end;

end.

Kann mir jemand das richtige Ergebnis schreiben oder mir den Fehler 
sagen, da ich ohne Hilfe nicht weiter komme!

Bitte helft mir schnell!!!!

Danke schon mal fürs lesen.

Autor: Spackmahal (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Warum denn so eilig?

Lass mich raten...der Quelltext ist Teil eines Raketenprojekts. Und der 
Start kann nicht wegen der Software verschoben werden...?

Autor: Peter II (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Du schreibst weder welchen Fehler es gibt, noch lieferst du uns ein 
Projekt was man selber übersetzen könnte?

Wie soll man da jemand helfen.

Es ist übrigens sinnvoll Buttons einen sinnvollen namen zu geben, 
Button1, Button2 ist nicht wirklich brauchbar.

Autor: Fabian (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Eine Fehlerbeschreibung wäre schon ziemlich cool, oder?

Autor: Karl Heinz Buchegger (kbuchegg) (Moderator)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hans schrieb:

> Kann mir jemand das richtige Ergebnis schreiben oder mir den Fehler
> sagen, da ich ohne Hilfe nicht weiter komme!
>
> Bitte helft mir schnell!!!!

Was ist denn das Problem? Ist derjenige, von dem du den Code geklaut 
hast nicht mehr greifbar?


(Der Code sieht grundsätzlich nicht schlecht aus. Vom Umfang her ist er 
auch mehr, als man von einem Neuling erwarten würde. Daher: Wenn du 
nicht in der Lage bist, da drinnen Fehler selbst zu suchen, zb auch mit 
Debugger-Hilfe, dann hast du den Code nicht selbst geschrieben)

Autor: Hans (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
In dem Quelltext ist ein Fehler nur ich weiß nicht wo. Außerdem funkt es 
nicht so wie ich will. Also Hilft mir!!!!!!!!!!!!!!!!!!!!!!!

Autor: Karl Heinz Buchegger (kbuchegg) (Moderator)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
No.
Nach deiner letzten Meldung bin ich mir ganz sicher: Den Code hast du 
unter Garantie nicht selbst geschrieben.
Ich mach hier dicht, weil ich sehr davon überzeugt bin, dass du gerade 
versuchst, dir eine bessere Benotung zu erschleichen. Und da spielt das 
Forum nicht mit.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.
webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net