Autor Beitrag
Aquatinta
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Mo 31.01.05 01:28 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: 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?

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: 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.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 03.02.05 13:08 
Die wichtigsten Funktionen und Prozeduren zur Stringverarbeitung mit Erläuterungen findest du hier
Eine Demo mit Sourcen findest du da auch.
Aquatinta Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: 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: