Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

proceduren bei Delphi

Empfohlene Antworten

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

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

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

????

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

Ok werds probben war zuspät dran THX toooo TDD

euer Cruzito

hmmmmm sorry vielleicht bin ich ja zu blöd aber irgendwie klappt das nicht son schiss!!

euer Cruzito

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...

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

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.]

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

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

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

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

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

Hi,

ich nochmal, den Quatsch mit der select-case-Anweisung kannst du vergessen, sondern nur den Teil mit der Parameterübergabe nehmen.

Manne

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.