Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi,

ich hab wieder ein Problem!!

ich muss einen Taschenrechner programmieren. nachdem ich auf die Zahl zB: 7 geklickt habe soll die Zahl in einem Edit Feld angezeigt werden. Das Tut auch soweit, bloss wenn ich ene andere Zahl drücke dann wird die 7 durch die andere ersetzt. Ich will aber das diese Zahlen hintereinander angezeigt werden. Kann mir einer Helfen??

euer Cruzito

Geschrieben

Da wirst du dir wohl eine Hilfsvariable deklarieren müssen, die sich die aktuelle Zahl im Editfeld merkt. Wenn du dann eine weitere Ziffer eingibst, dann muss diese Variable um diese erweitert werden, also muss alles in einen String umgewandelt werden. Dann wird diese Hilfsvariable wieder ins Editfeld geschrieben. Rechnen kannst du damit trotzdem noch.

Ich hoffe, ich habe mich verständlich ausgedrückt... wink.gif

Geschrieben

procedure Ziffernmerken;

var

Ziffer : String;

begin

if Edit1.Text <> '' then

Ziffer := Edit1.Text;

ZifferUpdate (Ziffer);

end;

procedure Zifferupdate;

begin

{Hier müsstest du zunächst überprüfen, ob eine weitere "Taste" gedrückt wurde, und welche. Dann geht es weiter:}

if {ist gedrückte Taste eine Zahl?} then

begin

Ziffer := Ziffer + '[beschriftung der bedrückten Taste]';

Edit1.Text := Ziffer;

end;

end;

So ungefähr.....denke ich..... smile.gif

Geschrieben

????

so halbwegs hab ich dich verstanden!!

ich sollte also die eingabe inne variable schreiben und dann die Variable in dem Editfeld ausgeben??

wie mach ich das??

bis jetzt hab ich ein onklick ereigniss

Form1.Edit1.text:='7';

so wie schreib ich das ganze inne variable ich denke mal das ich was anderes schrieben muss anstatt des "Form1.Edit.text" oda???

euer Cruzito

Geschrieben

Wo liegt denn das Problem ? ich habe da irgendwo noch ein komplett feriges Programm.

Wenn du es gar nicht hingekommst, kann ich es dir mal zumailen...allerdings garantiere ich nicht dafür, dass es einwandfrei funktioniert.....warte mal ich suche es...

Geschrieben

Hi TDD,

ich hab das Problem gelöst war eigentlich ganz einafch man hat nur drauf kommen brauchen.

Form1.Edit1.Text:=Edit1.Text + 'die Zahl';

nun hab ich ein anderes problem biggrin.gifbiggrin.gif

ich hab ein Button der vor die Zahl ein plus oda ein minus stellen soll. Dies soll auch passieren wenn schon zahlen reingeschrieben wurden!! hast du vielleicht ne Eingebung???

euer Cruzito

Geschrieben

Dasselbe Prinzip, denke ich. Da darstellungen im Editfeld ja strings sind, kann sie beliebig erweitern.

Und mein kollege sagt, dass das Rechnen auch kein Problem sei, da Integer-Werte auch Vorzeichen haben können.

[Dieser Beitrag wurde von thedirtydog am 08. Februar 2001 editiert.]

Geschrieben

Hi Cruz,

wenn Du vor die Zahl im EditFeld ein +/- stellen willst versuchsmal mit:

Form1.Edit1.Text:='+' + 'die Zahl'

bzw.

Form1.Edit1.Text:='-' + 'die Zahl'

Die Zahl mußt Du natürlich vorher in ein String konvertieren mit:

Zahl_String:=IntToStr(Zahl_Integer);

MFG LoneGunman

Geschrieben

so hab die Aufgabe jetzt gelöst biggrin.gifbiggrin.gifbiggrin.gif

hier mein code wens interessiert!!

nur ab der implementation



implementation


{$R *.DFM}


procedure TForm1.Button7Click(Sender: TObject);

begin

Form1.Edit1.Text:=Edit1.Text + '1';

end;


procedure TForm1.Button8Click(Sender: TObject);

begin

Form1.Edit1.Text:=Edit1.Text + '2';

end;


procedure TForm1.Button9Click(Sender: TObject);

begin

Form1.Edit1.Text:=Edit1.Text + '3';

end;


procedure TForm1.Button4Click(Sender: TObject);

begin

Form1.Edit1.Text:=Edit1.Text + '4';

end;


procedure TForm1.Button5Click(Sender: TObject);

begin

Form1.Edit1.Text:=Edit1.Text + '5';

end;


procedure TForm1.Button6Click(Sender: TObject);

begin

Form1.Edit1.Text:=Edit1.Text + '6';

end;


procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Edit1.Text:=Edit1.Text + '7';

end;


procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Edit1.Text:=Edit1.Text + '8';

end;


procedure TForm1.Button3Click(Sender: TObject);

begin

Form1.Edit1.Text:=Edit1.Text + '9';

end;

procedure TForm1.Button14Click(Sender: TObject);

begin

Form1.Edit1.Text:=Edit1.Text + ',';

end;


procedure TForm1.Button12Click(Sender: TObject);

begin

Form1.Edit1.Text:=Edit1.Text + '0';

end;


procedure TForm1.Button11Click(Sender: TObject);

begin

Application.Terminate;

end;


procedure TForm1.Button10Click(Sender: TObject);

begin

Form1.Edit1.Text:='';

end;


procedure TForm1.Button13Click(Sender: TObject);

var

  s : String;

  a : Char;

  b : Char;

begin

  s := Edit1.Text;

  a := Chr(48);

  b := Chr(57);



  if (s[1] >= a) and (s[1] <= 

  then begin

         s := '-' + s;

       end

  else begin

         if s[1] = '-'

         then begin

                s[1] := '+'

              end

         else begin

                s[1] := '-';

              end;

       end;  


  Edit1.Text := s;

end;


end.


[/code]

eigentlich gar nicht so schwer oda???

biggrin.gifbiggrin.gifbiggrin.gifbiggrin.gif

euer Cruzito

Geschrieben

Und das funktioniert ? (dumme Frage, natürlich). Was ist denn, wenn noch nix im Editfeld steht ? Wird dann nicht ein Leerzeichen angehängt ? Oder hast du das abgefangen und ich sehe das bloß nicht ?

Aber gute Arbeit, muss ich sagen.. smile.gif

Geschrieben

Hi Cruzito,

ein kleiner Tip vielleicht kannst du den ganzen Rattenschwanz von Procedureaufrufen in eine select-case-Anweisung schreiben, wobei du die eingegebene Ziffer in eine Variable schreibst und diese als Parameter im Procedur-Aufruf übergibst, dadurch wird das Programm etwas kürzer und vielleicht auch übersichtlicher.

Manne

Geschrieben

Hi,

das Problem ist noch das wenn ich sofort die +/- Taste betätige obwohl keine Zahl drin steht dann kommt eine Fehlermeldung!! was aber eigentlich auch wieder logisch ist. Naja Abfabgen werde ich das jetzt nicht da mein Ausbilder so zufrieden ist und ich noch drei andere Aufgaben lösen muss. Er war so schlau und hat uns 5 Aufgaben innerhalb von 2 Tagen gegeben biggrin.gifbiggrin.gifbiggrin.gif

euer Cruzito

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...