Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - [VisualCLX] Eingabe von Werten in Editfeld festlegen
Aquatinta - Mo 31.01.05 01:28
Titel: Eingabe von Werten in Editfeld festlegen
Hallo Forum,
ich habe eine Form mit 12 LabelEditfeldern (LabelEdit_AB, LabelEdit_CD, ...). Diese sollen so eingestellt sein daß:
1. nur Zahlen, Komma (Punkt zu Komma) und die Backspacetaste möglich sind.
(Zu diesem Punkt habe ich eine Lösung aus dem Forum. Will das nur sagen, weil ich als Anfänger nicht weiß ob das, wie der Mediziner sagt, zu Wechselwirkungen mit anderen Medikamenten, sprich Proceduren, führen kann :) )
2. Jedes der Felder soll einen festgelegten Bereich, zB. 1,5 - 3,0 oder 1000 - 10000 erhalten. wenn sich die Eingabe außerhalb befindet, soll eine Meldung erscheinen "Eingabe nur zwischen 1,5 - 3,0 möglich", "Eingabe nur zwischen 1000 - 10000 möglich", usw. (Hier hab ich schon an UpDown gedacht)
3. Wenn eines der Felder vergessen wurde, soll die Meldung "Bitte geben Sie den Wert für Feld AB ein!", "Bitte geben Sie den Wert für Feld CD ein!", usw.
Ich wäre froh, wenn ihr mir helfen würdet.
Christian
IngoD7 - Mo 31.01.05 12:21
Titel: Re: Eingabe von Werten in Editfeld festlegen
Aquatinta hat folgendes geschrieben: |
3. Wenn eines der Felder vergessen wurde, soll die Meldung "Bitte geben Sie den Wert für Feld AB ein!", "Bitte geben Sie den Wert für Feld CD ein!", usw. |
TLabeledEdit.Text kennst du doch, oder?
Die Abfrage, ob diese Eigenschaft leer ( = vergessen worden) ist, oder nicht, kann das Problem doch nicht sein.
An der Stelle, wo du das prüfst, würde ich auch die Zahlenwerte in den LabeledEdits prüfen (dein Punkt 2.). Dann brauchst du nicht jeden Tastendruck einzelnd zu überprüfen, sondern nur einmal am Ende der Eingaben, wo du sowieso nachschaust, ob eine Eingabe vergessen wurde. Zur Überprüfung der Zahlenwerte benutze dann z.B. StrToFloat.
Fang mal an. Und wenn du spezielle Fragen hast, kannst dich ja wieder melden.
Aquatinta - Do 03.02.05 03:15
ja ingo,
da hast du recht gehabt. ich hab jetzt die sache bücherwälzend+brillenglasbeschlagen geschafft.
was mir jetzt noch fehlt, ist die begrenzung der stellenzahl im editfeld.
also es soll nur 3,5 und bei einem anderem 12 (ganzzahlig)eingegeben werden können.
äh...hier gehört das wohl nicht zufällig rein?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure THauptfenster.KeyPressFloat(Sender : TObject; var Key : Char);
begin if Key = '.' then Key := ','; if NOT (Key in [#8, '0'..'9', ',']) then Key := #0; end; |
gruß
christian
IngoD7 - Do 03.02.05 12:43
Aquatinta hat folgendes geschrieben: |
äh...hier gehört das wohl nicht zufällig rein?
|
Doch, könnte da rein.
Du musst da dann prüfen, ob dein Edit schon die maximale Anzahl von Stellen enthält. Wenn ja, dann key auf 0.
Backspace ( #8 ) musst du natürlich immer durchlassen.
Stichworte:
- pos, um zu gucken, ob ein Komma im Edit steht
- copy, um Teile des Edits zu bekommen
- length, um z.B. zu gucken, ob der Teil hinter dem Komma, schon 2 Ziffern lang ist.
Siehe Online-Hilfe dazu.
Aquatinta - Fr 04.02.05 02:45
Hallo,
dank eurer denkanstöße hab ich es vollbracht.
alle punkte abgearbeitet.
danke
und auf wiederfragen :lol:
christian
IngoD7 - Fr 04.02.05 10:49
Aquatinta hat folgendes geschrieben: |
dank eurer denkanstöße hab ich es vollbracht.
alle punkte abgearbeitet.
danke
und auf wiederfragen :lol: |
Ah, das tut gut. :D Endlich mal wieder jemand, der sich seine Ergebnisse selbst erarbeitet. :beer:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!