Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Taschenrechner in der Schule (https://www.delphipraxis.net/33092-taschenrechner-der-schule.html)

bogohl 1. Nov 2004 16:52


Taschenrechner in der Schule
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leute,

bin ein totaler Delphi Anfänger und hab mal ne frage wie ich das nun lösen kann!!
Is ne Aufgabe aus der Schule!
Der Rechner soll OOP sein! Bei meinem Tascherechner ist das Problem das ich die Grundrechenarten nur seperat berechnen kann!
Habe das problem im programm markiert und kurz erläutert!

danke im vorraus!!

DP-Maintenance 1. Nov 2004 17:49

DP-Maintenance
 
Dieses Thema wurde von "Daniel" von "Open-Source" nach "Sonstige Fragen zu Delphi" verschoben.

Nothine 1. Nov 2004 18:35

Re: Taschenrechner in der Schule
 
also soweit ich das sehen konnte würde sich dein problem dadurch lösen lassen, wenn du eine weitere membervariable in deine TRechnen-Klasse einbaust, in der du die gewünschte rechenart ablegst, z.B. '+', '-' etc. und dann beim IstGleichClick mittels einer case-anweisung abfragst welche rechenart gewünscht ist und dementsprechend die prozeduren aufrufst

bogohl 4. Nov 2004 13:04

Re: Taschenrechner in der Schule
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke erstmal für den Tipp!!
Hab das mit der case-Anweisung versucht nur funktioniert leider immer noch nicht!!!
Das Problem ist das er die erste Zahl sofort versucht mit der Zweiten zu Addieren, Subtrahieren...
Da die zweite Zahl aber noch nicht eingegeben wure liegt sie noch auf Null!!
Weiterhin liegt ein Problem noch bei meinem Zifferblatt, brauch glaube ne bessere Anweisung!
Wäre also cool wenn ihr mir dabei helfen könntet.
Stelle die neuere variante noch mal rein!!

Nothine 4. Nov 2004 13:28

Re: Taschenrechner in der Schule
 
das kann auch nicht funktionieren, wenn du die funktionen von TRechnen weiterhin aufrufst...
Delphi-Quellcode:
procedure TRechner.SubtrahiereBtnClick(Sender: TObject);
begin
  a := 2;
  DatenAkktualisieren;
  Rechnen.Subtraktion; // <-- dieser aufruf muss weg
end;

procedure TRechner.MultipliziereBtnClick(Sender: TObject);
begin
  a := 3;
  DatenAkktualisieren;
  Rechnen.Multiplikation; // <-- dieser aufruf muss weg
end;

procedure TRechner.DividiereBtnClick(Sender: TObject);
begin
  a := 4;
  DatenAkktualisieren;
  Rechnen.Division; // <-- dieser aufruf muss weg
end;
außerdem nochwas, das ergebnis kann nicht korrekt zurückgeliefert werden solange du nicht deine "Grundrechenarten" prozedur aufrufst.
Delphi-Quellcode:
function TRechnen.GetErgebnis : real;
begin
  GrundRechtenArten; // <-- diesen Aufruf hast du vergessen
  result := Ergebnis;
end;
probier es so nochmal...

bogohl 4. Nov 2004 13:56

Re: Taschenrechner in der Schule
 
Vielen Dank!!!!
Jetzt funktioniert es!!
Hatte es einfach vergessen!
Kannst du mir vielleich auch noch bei meinem zweiten Problem helfen??
Das mit dem Ziffernblatt??

tHeRiAn 4. Nov 2004 15:52

Re: Taschenrechner in der Schule
 
schau mal in deinem pn Eingang
:dp:

Nothine 4. Nov 2004 16:43

Re: Taschenrechner in der Schule
 
im moment ist es nur möglich eine zahl einzugeben, das würde sich dadurch lösen lassen das du folgendes machst:
Delphi-Quellcode:
procedure TRechner.EinsBtnClick(Sender: TObject);
begin
  if Eingabe1Edt.Text <> '0' then // wenn schon zahl vorhanden, anfügen
    Eingabe1Edt.Text := Eingabe1Edt.Text + '1'
  else // ansonsten ersetzen
    Eingabe1Edt.Text := '1'; // | <-- original
end;

procedure TRechner.ZweiBtnClick(Sender: TObject);
begin
  if Eingabe1Edt.Text <> '0' then // wenn schon zahl vorhanden, anfügen
    Eingabe1Edt.Text := Eingabe1Edt.Text + '2'
  else // ansonsten ersetzen
    Eingabe1Edt.Text := '2'; // | <-- original
end;

...
wenn man sich das genau ansieht sieht man sogar das es mehr oder weniger immer das selbe ist, du kannst also EinsBtnClick, ZweiBtnClick etc. zu einer einzigen BtnClick-Prozedur zusammenfassen, und die Caption benutzen um zu bestimmen welche zahl angefügt werden soll
Delphi-Quellcode:
procedure TRechner.EinsBtnClick(Sender: TObject);
begin
  if Eingabe1Edt.Text <> '0' then // wenn schon zahl vorhanden, anfügen
    Eingabe1Edt.Text := Eingabe1Edt.Text + TButton(Sender).Caption
  else // ansonsten ersetzen
    Eingabe1Edt.Text := TButton(Sender).Caption;
end;
edit: da schreibt man mal was, bleibt mitten drin stehn und geht für paar stunden weg, und schon schreibt da jemand anders auch etwas (kann zwar nich jeder lesen, aber ok) was die lösung sein könnte :stupid:

bogohl 4. Nov 2004 17:29

Re: Taschenrechner in der Schule
 
Dankeschön!!!!!! :-D
Werde als nächstes mal versuchen die Werte in ne Dualzahl oder Hex umzuwandeln :coder:
und wenn ich alleine nicht mehr weiter komme wende ich mich dann wieder an euch!!

idontwantaname 4. Nov 2004 17:42

Re: Taschenrechner in der Schule
 
schau dir mal IntToHex() an


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:45 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz