Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Nur Zahlen in TLabeledEdit eingeben (https://www.delphipraxis.net/83563-nur-zahlen-tlabelededit-eingeben.html)

ferby 4. Jan 2007 15:04


Nur Zahlen in TLabeledEdit eingeben
 
Hallo,

ähnliche Fragen wie meine gibt es schon im Forum,
aber die Frage die ich habe, habe ich leider nicht gefunden.


Problem:

Ein Benutzer soll in ein TLabeledEdit nur Zahlen, ein Minus, und VK_Back eingeben können.


Habe das so gelößt

procedure TForm2.Lab_ed_LeftKeyPress(Sender: TObject; var Key: Char);
begin
if (not (key in ['0'..'9'])) and (key<>'-') and (key<>#8) then key:=#0;
end;


Jetzt mein Problem:

Was ist wenn im Label bereits eine Zahl steht, und der Benutzer drückt die minus Taste?

Also wie stelle ich es an, das nur an der ersten Stelle EIN Minus gesetzt werden kann,
auch wenn bereits eine Zahl da steht??


Gruß,
Ferby

RavenIV 4. Jan 2007 15:10

Re: Nur Zahlen in TLabeledEdit eingeben
 
Du kannst abprüfen, ob Sender.Text länger als ein Zeichen ist und dann das '-' nicht mehr zulassen.

ferby 4. Jan 2007 15:31

Re: Nur Zahlen in TLabeledEdit eingeben
 
Hallo,


Zitat:

Du kannst abprüfen, ob Sender.Text länger als ein Zeichen ist und dann das '-' nicht mehr zulassen.

Sorry das geht nicht, hab ich mir auch schon überlegt, denn



Zitat:

auch wenn bereits eine Zahl da steht

Was ist wenn bereits die Zahl 100 da steht und jemand wil daraus -100 machen,
und gibt einfach ein - vor dem 100 ein,
dann würde das nicht gehen.

Ich will aber das das geht.

Aber danke für deinen Vorschlag.

Klaus01 4. Jan 2007 15:35

Re: Nur Zahlen in TLabeledEdit eingeben
 
Du kannst doch wenn die '-' Taste gedrückt wurde
im Text nachschauen ob schon ein Minus vorhanden ist.
Wenn ja ignorierst Du die Taste.
Wenn noch kein Minus vorhanden ist, setzte Du das Minus einfach
an den Textanfang.

Grüße
Klaus

RavenIV 4. Jan 2007 15:38

Re: Nur Zahlen in TLabeledEdit eingeben
 
Dann prüfst Du halt, ob schon ein Text drin steht und die Änderung die erste Stelle des Textes betrifft.

Mann, sooo schwer kann das doch nicht sein...
Musst halt einige if then else einbauen und das an verschiedenen Stellen prüfen.
Im OnChange, im KeyPress, OnEnter, usw.
Schau halt mal, was es für OnXY gibt und lies Dir die Hilfe dazu durch.

Oder such bei den Komponentensammlungen (z.B. Jedi) oder Komponentenwebsites (z.B. torry.net) nach einer Komponente, die das von Haus aus schon kann.

Sorry für die harten Worte, aber hier rumjammer bringt Dich auch nicht weiter.

ferby 4. Jan 2007 15:42

Re: Nur Zahlen in TLabeledEdit eingeben
 
Zitat:

Du kannst doch wenn die '-' Taste gedrückt wurde
im Text nachschauen ob schon ein Minus vorhanden ist.
Wenn ja ignorierst Du die Taste.
Wenn noch kein Minus vorhanden ist, setzte Du das Minus einfach
an den Textanfang.
Du kannst doch wenn die '-' Taste gedrückt wurde
im Text nachschauen ob schon ein Minus vorhanden ist.
Wenn ja ignorierst Du die Taste.
Wenn noch kein Minus vorhanden ist, setzte Du das Minus einfach
an den Textanfang.
Das scheint mir recht sinnvoll zu sein,
ich werde es so machen.


Zitat:

Sorry für die harten Worte, aber hier rumjammer bringt Dich auch nicht weiter.
Wie kommst du drauf das ich rumjammer?
Ich habe einfach Hilfe gebraucht und hier mein Problemm geschildert,
dafür ist das Forum halt da.

Ps. deine Antwort brachte mir nichts weiter,
mein "herumjammern" schon.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz