![]() |
Edit Felder mit Rechenfunktionen erstellen aber wie?
Hallo Leute,
bin völliger neuling was Delphi angeht und habe für einige von euch eine simple Frage (habe überhaupt keinen durchblick). Habe auch schon diverse tuts gelesen, aber für mich im mom nur bahnhof... Also ich schildere mal: Ich möchte 3 Edit Felder wo "nur" zahlen erlaubt sind. Diese 3 Edit Felder sind zwingend. Falls ein Edit Feld leer ist, sollte darauf hingewiesen werden es mit einer Zahl zu belegen. Im einem weiteren Feld sollte das ergebnis dargestellt werden. Es sollten 2 rechenaufgaben hintereinander gerechnet werden. Also Zahl 1 + Zahl 2 : Zahl 3 = Ergebnis Nunja, ich habe einen einfachen rechner gefunden, (und nachvollzogen) der mir zahl 1 und zahl 2 zusammenzählt und auch das Ergebnis anzeigt. Was ich einfach nicht schaffe ist es, dieses ergebnis mit einer weiteren Zahl noch zu dividieren und in einem Edit Ferd anzuzeigen. Ist mein vorhaben überhaupt möglich? ThX schon mal Duffy Duck |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Du meinst jetzt aber nicht sowas wie:
Delphi-Quellcode:
Oder doch?
var Ergeb:double;
Ergeb := strtofloat(edit1.text) + strtofloat(edit2.text); Ergeb := Ergeb / strtofloat(edit3.text); edit4.text := floattostr(Ergeb); Greetz Boombuler |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Hai Duffy Duck,
ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS. Zitat:
Hier mal ein Beispiel. Du brauchst dafür 4 Editfelder und einen Button:
Delphi-Quellcode:
{
In den Editfelder werden nur Zahlen, das Dezimaltrennzeichen und die Backspace-Taste zugelassen } procedure TForm1.AllEditKeyPress(Sender: TObject; var Key: Char); begin if not (Key in ['0'..'9', #8, DecimalSeparator]) then begin Key := #0; end; end; procedure TForm1.FormCreate(Sender: TObject); begin // Allen drei Eingabefeldern wir die selbe OnKeyPress-Methode zugewiesen Edit1.OnKeyPress := AllEditKeyPress; Edit2.OnKeyPress := AllEditKeyPress; Edit3.OnKeyPress := AllEditKeyPress; // Alle Editfelder löschen Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; end; procedure TForm1.Button1Click(Sender: TObject); var zahl1, zahl2, zahl3 : Real; ergebniss : Real; begin // Prüfen ob in den Editfeldern etwas steht. if (Edit1.Text = '') then begin ShowMessage ('Bitte im Edit1 etwas eingeben'); Edit1.SetFocus; // Caret in Edit1 setzen Exit; // Abbruch der Procedure end; if (Edit2.Text = '') then begin ShowMessage ('Bitte im Edit2 etwas eingeben'); Edit2.SetFocus; Exit; end; if (Edit3.Text = '') then begin ShowMessage ('Bitte im Edit3 etwas eingeben'); Edit3.SetFocus; Exit; end; zahl1 := StrToFloat(Edit1.Text); // Zahl aus Edit1 zahl2 := StrToFloat(Edit2.Text); // Zahl aus Edit2 zahl3 := StrToFloat(Edit3.Text); // Zahl aus Edit3 ergebniss := (zahl1 + zahl2) / zahl3; // Die Berechnung Edit4.Text := FloatToStr(ergebniss); // Ausgabe des Ergebnisses end; |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Zitat:
|
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Zitat:
|
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Zitat:
War kein :warn: sonder nur 'ne Frage. Klar - mit Klammern wird die Regel ausser Kraft gesetzt. Duffy Duck wird schon wissen, was er braucht... :roll: |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Hallo Leute,
erst mal möchte ich mich bei euch für den freundlichen Empfang bedanken. Wow, was für eine schnelle Hilfe die hier angeflogen kommt.... Zitat:
ThX Duffy Duck |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
wenn eine zahl zugelassen sein soll würde ich
try Zahl1 := strtofloat (edt.text); except else showmessage ('Bitte eine Zahl eingeben/Nur Eine Zahl Eingeben'); edt.text := '0'; end; anstadt if nehmen da bei dem if noch buchstaben zugelassen sein können |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Wenn du diese if-Abfrage meinst:
Delphi-Quellcode:
,
if not (Key in ['0'..'9', #8, DecimalSeparator]) then
da kommen sicher keine Buchstaben durch. Ausserdem ist das else in deiner except-Klausel ueberfluessig... Greetz alcaeus |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
ne da stand noch ein anders if ich habe das hier ja nur überflogen
und einfach ist dieser befehl auch^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz