Luncustaf Geschrieben 8. Februar 2001 Geschrieben 8. Februar 2001 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 Zitieren
lpd Geschrieben 8. Februar 2001 Geschrieben 8. Februar 2001 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... Zitieren
lpd Geschrieben 8. Februar 2001 Geschrieben 8. Februar 2001 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..... Zitieren
Luncustaf Geschrieben 8. Februar 2001 Autor Geschrieben 8. Februar 2001 ???? 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 Zitieren
Luncustaf Geschrieben 8. Februar 2001 Autor Geschrieben 8. Februar 2001 Ok werds probben war zuspät dran THX toooo TDD euer Cruzito Zitieren
Luncustaf Geschrieben 8. Februar 2001 Autor Geschrieben 8. Februar 2001 hmmmmm sorry vielleicht bin ich ja zu blöd aber irgendwie klappt das nicht son schiss!! euer Cruzito Zitieren
lpd Geschrieben 8. Februar 2001 Geschrieben 8. Februar 2001 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... Zitieren
lpd Geschrieben 8. Februar 2001 Geschrieben 8. Februar 2001 haha, du hast ja keine Email-Adresse...Ich habe es jedenfalls gefunden...ist aber noch ganz anders gelöst...und nu? Zitieren
Luncustaf Geschrieben 8. Februar 2001 Autor Geschrieben 8. Februar 2001 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 Zitieren
lpd Geschrieben 8. Februar 2001 Geschrieben 8. Februar 2001 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.] Zitieren
Luncustaf Geschrieben 8. Februar 2001 Autor Geschrieben 8. Februar 2001 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 Zitieren
Gast Geschrieben 8. Februar 2001 Geschrieben 8. Februar 2001 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 Zitieren
lpd Geschrieben 8. Februar 2001 Geschrieben 8. Februar 2001 @Cruz: Ja ja, Delphi ist schon ein Fall für sich..... Zitieren
Luncustaf Geschrieben 8. Februar 2001 Autor Geschrieben 8. Februar 2001 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 Zitieren
lpd Geschrieben 8. Februar 2001 Geschrieben 8. Februar 2001 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.. Zitieren
Manne Geschrieben 8. Februar 2001 Geschrieben 8. Februar 2001 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 Zitieren
Manne Geschrieben 8. Februar 2001 Geschrieben 8. Februar 2001 Hi, ich nochmal, den Quatsch mit der select-case-Anweisung kannst du vergessen, sondern nur den Teil mit der Parameterübergabe nehmen. Manne Zitieren
Luncustaf Geschrieben 9. Februar 2001 Autor Geschrieben 9. Februar 2001 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 Zitieren
Empfohlene Beiträge
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.