Ergebnis 1 bis 16 von 16

Thema: Taschenrechner mit Delphi

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    das hast du richtig verstanden und das was du noch gesagt hast da habe ich tatsächlich noch nicht ganz so gedacht.
    Ich glaube ich poste mal etwas mehr

    Button 1
    Code:
    begin
        try
          edit1.Text :=  (edit1.text + '1');
        except
      edit1.Text := ('Fehler');
     end;
    das ist ein +
    Code:
    begin
      try
        rechenart := ('+');
        alt := StrToFloat (edit1.Text);
        edit1.clear;
      except
      edit1.Text := ('Fehler');
    end;
    das ist das clear

    Code:
    begin
    edit1.Clear;
    edit1.Text := ('')
    end;
    und das das =

    Code:
    begin
      try
          alt2 := FloatToStr (alt);
          rechenart := hier müsste jetzt alt2 + rechenzeichen + edit1.text
          edit1.text := Floattostr (rechenart);
      except
      edit1.Text := ('Fehler');
    end;
    und die eine zeile das weis ich jetzt nicht das es die anzeige löscht wenn ich nach dem = wieder eine zahl eingebe ist ja erstmal zweitens oder
    wenigstens das das grundprinziep funktioniert.
    Mein Problem ist hier wirklich nur die Schreibweise darum habe ich alt auch wieder in ein string verwandelt um dann beide ergebnisse wieder in einen gleitkommewert zu umzuwandeln um damit zu rechnen -> dazu steht oben die schreibweise.

    Geändert von heXXer (20.04.2010 um 06:56 Uhr)

  2. #2
    Zitat Zitat von heXXer Beitrag anzeigen
    Code:
    begin
      try
          alt2 := FloatToStr (alt);
          rechenart := hier müsste jetzt alt2 + rechenzeichen + edit1.text
          edit1.text := Floattostr (rechenart);
      except
      edit1.Text := ('Fehler');
    end;
    Mein Problem ist hier wirklich nur die Schreibweise darum habe ich alt auch wieder in ein string verwandelt um dann beide ergebnisse wieder in einen gleitkommewert zu umzuwandeln um damit zu rechnen -> dazu steht oben die schreibweise.
    Also das verstehe ich noch nicht.
    Erstens: Ich nehme an, da gehört "result := ..." und dann "edit1.text := Floattostr (result);", oder?
    Zweitens: Warum wandelst du alt extra in einen Sting um, nur um es anschließend sofort wieder in ein Float umzuwandeln? o_O"
    Drittens: Wie gesagt, in die Zeile gehört einfach Whiz' Case-Anweisung.
    Also insgesamt wohl so:
    Code (Delphi):
    begin
      try
          case (rechenart) of 
            '+' : result := alt + StrToFloat (edit1.text);
            '-' : result := alt - StrToFloat (edit1.text);
          end;
          edit1.text := Floattostr (result);
      except
      edit1.Text := ('Fehler');
    end;

    Wie gesagt habe ich aber noch nie Delphi programmiert oder mich auch nur damit beschäftigt, also bezüglich Sichtbarkeit von Variablen musst du dich an andere halten. Aber eigentlich müssten alle verwendeten Variablen für alle die3se Funktionen sichtbar sein, außer result.

    Und wie gesagt, damit die Zahlen beim Eingeben einer neuen Zahl dann wieder verschwinden, würde ich irgendeine Boolean Variable verwenden, die du im "="-Handler auf true setzt und dann in den Handlern der Zifferntasten abfragst (und wieder auf [tt]false[tt] setzt).
    Genauso kannst du's dann auch mit jeweils einer Zeile bei "+" und "-" hinbekommen, dass auch da die Zahlen erstmal stehen bleiben und erst mit Drücken der nächsten Zifferntaste verschwinden.

  3. #3
    hey danke euch beiden.warum ich das so gemacht hab kann ich dir sagen weil ich es einfach nicht weis, darum probiere ich viel rum bis es geht das ist meine lernmethode.wenn ich zu hause bin werd ich das probieren.Mal noch eine Frage ist "char" nur für rechenzeichen oder sonderzeichen?

  4. #4
    ich habe jetzt rechenart : char festgelegt (übrigends alle als globale varialblen)

    und jetzt meckert er hier
    Code:
    begin
      try
          case (rechenart) of 
            '+' : result := alt + StrToFloat (edit1.text);
            '-' : result := alt - StrToFloat (edit1.text);
          end;
          edit1.text := Floattostr (result);
      except
      edit1.Text := ('Fehler');
    end;
    bei der zeile

    Code:
    '+' : result := alt + StrToFloat (edit1.text) ;
    rum dass es der string inkompatibel ist und extendet also zu lang?
    was fehlt mir noch

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •