AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Taschenrechner

Ein Thema von Zeb22 · begonnen am 8. Jul 2009 · letzter Beitrag vom 9. Jul 2009
Antwort Antwort
Zeb22

Registriert seit: 30. Jan 2009
Ort: Hamburg
41 Beiträge
 
#1

Taschenrechner

  Alt 8. Jul 2009, 16:08
Ich möchte ein Taschenrechner mit Delphi aufbauen und hab da ein paar Probleme.

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Edit1: TEdit;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    procedure BtnAlleClick(Sender: TObject);
    procedure OpSpeicher(Sender: TObject);




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

var
  Form1: TForm1;
  zeichen:char;
  operand:char;
  opspeicher:char;

  ergebnis:double;
  zkam:boolean;

  zahl:double;
  zeichenkette:string;




implementation

{$R *.dfm}


procedure TForm1.BtnAlleClick(Sender: TObject);
begin
 if sender = button1 then zeichen :='1';
 if sender = button2 then zeichen :='2';
 if sender = button3 then zeichen :='3';
 if sender = button4 then zeichen :='4';
 if sender = button5 then zeichen :='5';
 if sender = button6 then zeichen :='6';



 if zkam = true
  then
   begin
    zeichenkette := zeichen;
    zkam := false;
   end
   else
    zeichenkette := zeichenkette + zeichen;
    Edit1.Text := zeichenkette;
    zahl := StrToFloat(zeichenkette);
   end;


procedure TForm1.OpSpeicher(Sender: TObject);
begin
 if sender = button7 then operand :='+';
 if sender = button8 then operand :='-';
 if sender = button9 then operand :='=';

 zkam := true;

 if opspeicher = '0then ergebnis := zahl;
 if opspeicher = '+then ergebnis := ergebnis + zahl;
 if opspeicher = '-then ergebnis := ergebnis - zahl;

 Edit1.Text := FloatToStr(ergebnis);
 opspeicher := operand;


end;

end.

Bei
Delphi-Quellcode:
if opspeicher = '0then ergebnis := zahl;
if opspeicher = '+then ergebnis := ergebnis + zahl;
if opspeicher = '-then ergebnis := ergebnis - zahl;
zeigt er mir an, es wären zu wenige parameter. Aber in den Unterlagen der Schule ist der text genau so.. ich brauch impulse von euch
  Mit Zitat antworten Zitat
Stormy

Registriert seit: 8. Okt 2005
Ort: LPZ
73 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Taschenrechner

  Alt 8. Jul 2009, 16:31
Guck dir mal das Beispiel hier an oder suche mal im Forum nach Taschenrechner da wirst du einiges dazu finden. Warum das Rad neu erfinden?


Gruß
Stormy
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Taschenrechner

  Alt 8. Jul 2009, 16:37
@ Stormy: neuerfinden zum lernen

@Topic: Dein Problem ist, dass du OpSpeicher einmal als Funktion deklariert hast und zum anderen als Variable. benenn eines von beiden um
[EDIT] Er versucht an der Entsprechenden Stelle die Funktion aufzurufen und die erwartet halt den Parameter Sender procedure TForm1.OpSpeicher(Sender: TObject); Alternativ müsstest du auch mit den von dir benutzten Werten arbeiten können, wenn du direkt auf Unit1 zugreifst, wobei ich davon abrate, da du mit doppelten Bezeichnern sehr schnell die übersicht verlierst!:
Delphi-Quellcode:
procedure TForm1.OpSpeicher(Sender: TObject);
begin
if sender = button7 then operand :='+';
if sender = button8 then operand :='-';
if sender = button9 then operand :='=';

zkam := true;

if Unit1.opspeicher = '0then ergebnis := zahl; // <----
if Unit1.opspeicher = '+then ergebnis := ergebnis + zahl; // <----
if Unit1.opspeicher = '-then ergebnis := ergebnis - zahl; // <----

Edit1.Text := FloatToStr(ergebnis);
Unit1.opspeicher := operand; // <----


end;
Gruß
Ansgar
Ansgar
  Mit Zitat antworten Zitat
Zeb22

Registriert seit: 30. Jan 2009
Ort: Hamburg
41 Beiträge
 
#4

Re: Taschenrechner

  Alt 8. Jul 2009, 17:16
Boah du bist echt cool angos. Vielen Dank für deine Hilfe, ich habe echt lange nach einer Lösung gesucht und jetzt ist das alles auf einmal so klar

Aber irgendwie habe ich da noch Probleme. Wenn ich z.b auf den = Button bei mir drücke, sollte er ja im Grunde 2 zahlen z.b adieren. Hab ich eben aus probiert. 1+5 = 0..

Da hackt noch etwas...
  Mit Zitat antworten Zitat
8. Jul 2009, 18:29
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Geht definitiv um Delphi
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Taschenrechner

  Alt 9. Jul 2009, 12:52
Hmm,

dann weisst du ja schon dass da ein Fehler ist. Also debugge einfach und schau, ob die Zahlen korrekt gefüllt werden und ob diese beim Klick auf das "=" auch noch verfügbar sind.


Gruß
Ansgar
Ansgar
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz