8. Februar 200124 j 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
8. Februar 200124 j 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...
8. Februar 200124 j 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.....
8. Februar 200124 j ???? 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
8. Februar 200124 j hmmmmm sorry vielleicht bin ich ja zu blöd aber irgendwie klappt das nicht son schiss!! euer Cruzito
8. Februar 200124 j 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...
8. Februar 200124 j haha, du hast ja keine Email-Adresse...Ich habe es jedenfalls gefunden...ist aber noch ganz anders gelöst...und nu?
8. Februar 200124 j 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 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
8. Februar 200124 j 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.]
8. Februar 200124 j Jo du hattest recht mit dem Prinzip THX nu hab ich noch ein Prob. aber das versuch ich erstmal selber zu lösen wenns nicht lappt dann poste ich nochmal euer Cruzito
8. Februar 200124 j 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
8. Februar 200124 j so hab die Aufgabe jetzt gelöst 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??? euer Cruzito
8. Februar 200124 j 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..
8. Februar 200124 j 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
8. Februar 200124 j Hi, ich nochmal, den Quatsch mit der select-case-Anweisung kannst du vergessen, sondern nur den Teil mit der Parameterübergabe nehmen. Manne
9. Februar 200124 j 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 euer Cruzito
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.