![]() |
Minus im edit nur als erstes Zeichen erlauben
HI
Ich versuche ein edit zu bauen, in dem man nur floats eintragen kann. (d.h. nur zahlen , max ein komma, max ein minus und das auch nur am Anfang) Mein letztes Problem ist jetzt das, dass ich es einfach nicht hinbekomme, das Minus nur als erstes Zeichen zuzulassen. :wall: Mir würde ein befehl helfen, mit dem ich lesen könnte, ob der Cursor im Edit an der ersten Stelle steht, oder nicht. Nur der ist schwierig zu suchen Hat da jemand eine Idee? :gruebel: |
Re: Minus im edit nur als erstes Zeichen erlauben
Moin Toxman,
schau Dir doch mal TEdit.SelStart an. |
Re: Minus im edit nur als erstes Zeichen erlauben
klingt in der OH sehr vielversprechend.
Damit wirds funzen. THXbyTOX :dp: |
Re: Minus im edit nur als erstes Zeichen erlauben
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Toxman,
ich hab' das zwar nicht erfunden, aber für Zahlen macht's sich gut als Komponente. Im Quelltext findest Du bestimmt die Lösung für Dein Problem. mfg eddy |
Re: Minus im edit nur als erstes Zeichen erlauben
Hi,
dafür braucht man nun wirklich keine Fremdkomponente. Du brauchst doch nur z.B.
Delphi-Quellcode:
zu überprüfen und dann das - zu unterdrücken oder zuzulassen.
length (Edit1.Text) > 1
|
Re: Minus im edit nur als erstes Zeichen erlauben
Könnte ungefähr so aussehen:
Delphi-Quellcode:
Gruß Lantis
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if not (Key in ['0'..'9',#8,#44,#45]) then Key := #0; if (length(edit1.Text)>0) and (Key in [#45]) then Key := #0; if (pos(#44,edit1.Text)>0) and (Key in [#44])then Key := #0; end; |
Re: Minus im edit nur als erstes Zeichen erlauben
Hi!
Zu dem was Hansa sagt: Zitat:
12345,78 und mich dann entschließen an Stelle 1 (also eigentlich erlaubt) ein Minus zu schreiben, aber das geht dann nicht mehr, oder irre ich mich da? Ciao fkerber |
Re: Minus im edit nur als erstes Zeichen erlauben
Hab mal eine kleine Procedure für das OnKeyPress geschrieben um nur Integer zuzulassen, auch negative:
Delphi-Quellcode:
Hier eine Variante für Kommmazahlen:
procedure TFormMain.EditKeyPressCheckInteger(Sender: TObject; var Key: Char);
begin if ((Sender as TLabeledEdit).SelStart = 0) then begin if not (Key in [#45,'0'..'9', #8]) then Key := #0; end else if not (Key in ['0'..'9', #8]) then Key := #0; end;
Delphi-Quellcode:
Aber: Ich hab in dem Projekt das so gemacht, dass als Komma nur ein . zugelassen wird. Wenn die Kommataste gedrückt wurde, dann wird ein Punkt hinzugefügt, kein Komma.
procedure TFormMain.EditKeyPressCheckComma(Sender: TObject; var Key: Char);
begin if Key = #44 then Key := DecimalSeparator; // Nur ein Komma zulassen if (Key = DecimalSeparator) and (pos(DecimalSeparator,(Sender as TLabeledEdit).Text) > 0) then Key := #0 // Das Komma darf nicht am Anfang stehen else if (Key = DecimalSeparator) and ((Sender as TLabeledEdit).SelStart = 0) then Key := #0 // -, nicht zulassen else if ((Sender as TLabeledEdit).SelStart = 1) and ((Sender as TLabeledEdit).Text[1] = #45) and (Key = DecimalSeparator) then Key := #0 // Ein Minus darf am Anfang stehen und nur Zahlen zulassen sowie Backspace else if ((Sender as TLabeledEdit).SelStart = 0) then begin if not (Key in [DecimalSeparator,#45,'0'..'9', #8]) then Key := #0; end else begin if not (Key in ['0'..'9', #8, DecimalSeparator]) then Key := #0; end; end; |
Re: Minus im edit nur als erstes Zeichen erlauben
Hi!
Bin neu hier hier. Kann man das nicht einfach mit TMaskEdit realisieren? :? Beispielsweise: #9999;1;_ Unter 'TCustomMaskEdit.EditMask' werden alle Befehle aufgelistet. |
Re: Minus im edit nur als erstes Zeichen erlauben
Ein Hallöle von
![]() Zitat:
![]() http://www.delphipraxis.net/images/common/divider.jpg ![]() ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 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