![]() |
"MaskEdit" selbst gemacht
Hallo Jungs,
ich hab folgende Frage: Ich möchte ein selbstgebautes "MaskEdit" (oder so was ähnliches) bauen, dass nur folgendes kann: Vorkommastellen (anzahl einstellbar) + , + Nachkommastellen (Anzahl einstellbar) also ein Art EditText das nur 999,999;1;_ kann (Anzahl der 9er einstellbar) Also nur zur eingabe von Zahlen. Weiss jemand wie man das am besten machen kann? oder hat jemand sogar sowas schon? mfg Helmi |
Re: "MaskEdit" selbst gemacht
Du brauchst kein neues MaskEdit, du modifizierst dir ein normales. Dazu musst du nur ein OnKeyPress-Event einbauen:
Delphi-Quellcode:
So müsste es gehen, aber ich garantiere nicht für die Funktionalität des COdes, ich habe es nicht getestet.
var
bCount, aCount: Integer; // Die Zahl deiner Vor-/Nachkommastellen Old: String; procedure TForm1.MaskEdit1Press(Sender: TObject; var Key: Char); var i: Integer; Temp: String; begin if not (Key in ['0'..'9', ',']) then Key := #0 else begin i := Pos(',', MaskEdit1.Caption); if i = 0 then i := Length(MaskEdit1.Caption); if i < Pos(',', Old) then begin if i > aCount then Key := #0; end else begin if Length(MaskEdit1.Caption)-i > bCount then Key := #0; end; end; Old := MaskEdit1.Caption; end; |
Re: "MaskEdit" selbst gemacht
hallo
danke für deinen Code ich werd ihn später mal testen... ... nur hab ich eines vergessen zu erwähnen: Ich möchte diesen MaskEdit-Charakter in ein Normales Edit-Feld einbauen. genauer gesagt in eine selbstgebaute Komponente die von der LabeledEdit-Komponente abstammt. Kurz gesagt: Da dass LabeledEdit von einem TEdit (genauer TCustomEdit) abstammt möchte ich dies beibehalten, es aber mit meinen "gewünschten Funktionen" ausstatten; Sprich die Funktion eines MaskEdit mit "___,___" und einstellbaren Vor-/Nachkommastellen ausstatten. Ich hoffe das ist (mit möglichst wenig) Aufwand machbar. mfg Helmi P.S: Es sollte auch so sein dass man bei der Eingabe von "," zu dem "," in "---,---" (z.B) springt, damit mann die Nachkomma-Zahlen eingeben kann |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 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