![]() |
Maskedit verwenden
Hi,
ich will in meinem Programm eine Zahleneingabe vereinfachen. Nutzen wollte ich dazu TLMDMaskEdit. Meine Zahlen, die eingegebene werden sollen sehen etwa so aus: 07-1372-2-134 Jetzt hat man ja die Möglichkeit eine Maske vorzugeben. Der 1. und zweite Zahlenblock bleibt gleich, der 3. kann sich ändern und der letzte Zahlenblock ist fortlaufend. Das heißt ich kann ja nicht die Mask auf 3 Zeichen stellen am Ende, da es ja 1,2 oder 3 Zeichen seien können. Wie kann man soetwas am sinvollsten abbilden? Vielen Dank! |
Re: Maskedit verwenden
Hai DelphiManiac,
mal unabhängig von der direkten Frage: Wäre es nicht "besser" die Eingabe auf vier Editfelder zu verteilen? |
Re: Maskedit verwenden
Hi Sharky,
Jein, also jetzt bei der manuellen Eingabe wären 4 Felder besser, da bin ich mit dir d'accord. Aber zukünftig sollen die Barcodes abgescannt werden, dann wäre mehrer Textefelder hinderlich... Gruß |
Re: Maskedit verwenden
Zitat:
Wenn jedes einzeln kommt könntest Du ja trotzdem mit mehreren Textfeldern arbeiten und einfach wenn x Zeichen im Edit stehen in das nächste springen. |
Re: Maskedit verwenden
Also der Scanner schickt glaube ich einzelne Character,
müsste ich mir mal angucken, dann könnte ich auf das '-' Minus triggern und dann in das nächste Feld springen. Gute Idee, guck ich mir mal an. |
Re: Maskedit verwenden
Hi,
habe es jetzt mit 4 Textfeldern gelöst, gucke ob ein '-' vorkommt und springe dann ins nächste Editfeld.
Delphi-Quellcode:
Kannst du mir sagen, wie ich Enter abfange und dann in ein anderes Edifeld springe?
procedure TFrmPCBNrGUI.txtDisplayPCB3KeyPress(Sender: TObject; var Key: Char);
begin if (Key in ['-']) then begin txtDisplayPCB4.SetFocus; Key := #0; end; end; Danke! |
Re: Maskedit verwenden
Du musst ja dann das Return behandeln, wie das "-" :
Delphi-Quellcode:
Muss das Return nicht besser ins KeyDown ? :gruebel:
if (Key in [#13,'-']) then
|
Re: Maskedit verwenden
@Hansa,
im KeyDown muss allerdings der äquivalente Word-Wert für #13 eingegeben werden: :mrgreen:
Delphi-Quellcode:
//Ende Klugs... :warn:
procedure TFrmPCBNrGUI.txtDisplayPCB3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if (Key in [$0D]) then begin txtDisplayPCB4.SetFocus; end; end; |
Re: Maskedit verwenden
Alternative : Fehlermeldung ignorieren. :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 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