ich bin gerade dabei in Delphi einen Taschenrechner zu programmieren, jedoch macht er nicht ganz das, was ich möchte, was er tun soll (scheiter im Moment schon an Addition und Subtraktion)

Aber naja bevor ich zu viel rede poste ich einfach mal den Quelltext, der für mich eigentlich vom Logischen her richtig erscheint ^^ Wäre nett, wenn ihr mir sagt, was da schief läuft bzw, ob der ganze Ansatz falsch ist. Bitte postet keine komplette Lösung, da will ich selber drauf kommen.
unit Taschenrechner; // delphi-eigene einstellungen bezüglich der verwendeten objekten interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Display: TEdit; Taste7: TButton; Taste8: TButton; Taste0: TButton; Taste3: TButton; Taste6: TButton; Taste9: TButton; Taste5: TButton; Taste2: TButton; Taste1: TButton; Taste4: TButton; TasteKomma: TButton; TasteMal: TButton; TasteTeilen: TButton; TasteMinus: TButton; TastePlus: TButton; TasteGleich: TButton; procedure Taste4Click(Sender: TObject); procedure Taste0Click(Sender: TObject); procedure Taste1Click(Sender: TObject); procedure Taste2Click(Sender: TObject); procedure Taste3Click(Sender: TObject); procedure Taste5Click(Sender: TObject); procedure Taste6Click(Sender: TObject); procedure Taste7Click(Sender: TObject); procedure Taste8Click(Sender: TObject); procedure Taste9Click(Sender: TObject); procedure TasteKommaClick(Sender: TObject); procedure TastePlusClick(Sender: TObject); procedure TasteMinusClick(Sender: TObject); procedure TasteGleichClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation // Variablen für Rechnungen des Rechners // (gelten über den komplett code) // // zahl : sich im display befindene zahl // zur zeit der rechenanweisung // x := zahl (zahl = string, x = real) // zwischenergebnis : variable für zwischenergebnisse var zahl : string; x , zwischenergebnis : real; {$R *.dfm} // definiere prozeduren - bei klick auf taste 0-9 und "," // zahl ins display schreiben, bwz hinzufügen procedure TForm1.Taste0Click(Sender: TObject); begin Display.Text := Display.Text + '0'; end; procedure TForm1.Taste1Click(Sender: TObject); begin Display.Text := Display.Text + '1'; end; procedure TForm1.Taste2Click(Sender: TObject); begin Display.Text := Display.Text + '2'; end; procedure TForm1.Taste3Click(Sender: TObject); begin Display.Text := Display.Text + '3'; end; procedure TForm1.Taste4Click(Sender: TObject); begin Display.Text := Display.Text + '4'; end; procedure TForm1.Taste5Click(Sender: TObject); begin Display.Text := Display.Text + '5'; end; procedure TForm1.Taste6Click(Sender: TObject); begin Display.Text := Display.Text + '6'; end; procedure TForm1.Taste7Click(Sender: TObject); begin Display.Text := Display.Text + '7'; end; procedure TForm1.Taste8Click(Sender: TObject); begin Display.Text := Display.Text + '8'; end; procedure TForm1.Taste9Click(Sender: TObject); begin Display.Text := Display.Text + '9'; end; procedure TForm1.TasteKommaClick(Sender: TObject); begin Display.Text := Display.Text + ','; end; // "richtiges" programm beginnt // Rechenvorgang : Addition procedure TForm1.TastePlusClick(Sender: TObject); begin //der Variable "zahl" wird der inhalt/wert des displays überwiesen zahl := Display.Text; //der string "zahl" wird in eine zahl vom real typ umgewandelt x := StrToFloat(zahl); //zwischenergebnis wird aktualisiert zwischenergebnis := zwischenergebnis + x; //display wird dem zwischenergebnis angepasst (vorher gelöscht) Display.Clear; Display.Text := FloatToStr(zwischenergebnis); end; // Rechenvorgang : Subtraktion procedure TForm1.TasteMinusClick(Sender: TObject); begin //der Variable "zahl" wird der inhalt/wert des displays überwiesen zahl := Display.Text; //der string "zahl" wird in eine zahl vom real typ umgewandelt x := StrToFloat(zahl); //zwischenergebnis wird aktualisiert zwischenergebnis := zwischenergebnis - x; //display wird dem zwischenergebnis angepasst (vorher gelöscht) Display.Clear; Display.Text := FloatToStr(zwischenergebnis); end; procedure TForm1.TasteGleichClick(Sender: TObject); begin Display.Clear; Display.Text := FloatToStr(zwischenergebnis); end; end.
Dieser Beitrag wurde von Noaki bearbeitet: 12. Dezember 2006 - 21:34