TMaskEdit

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
juelin
Beiträge: 244
Registriert: Sa 24. Jul 2021, 18:03
OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
CPU-Target: 64Bit
Wohnort: Mannheim

TMaskEdit

Beitrag von juelin »

Hallo Leute,
weil ich mehrmals drauf angesprochen wurde, befasse ich mich jetzt mit TMaskEdit.
Bisher habe ich ja mein Softwaretool "Eingabe" um Eingaben zu steuern.
Jetzt zu TMaskEdit.
Ist ja schon ganz gut, aber es gibt ein paar Dinge, die mir nicht gefallen bzw. ich noch keine bessere Lösung weiss.
z. B ein Einhabefeld MaskEdit in den ich eine numerische Zahl mit Vorzeichen und Komma eingeben möchte.
Die Größe des Feldes soll -4,3 sein.
Ich setzte also

Code: Alles auswählen

  MaskEdit1.CharCase:=ecNormal;
  MaskEdit1.EditMask:='#9990,000;1;'+MaskEdit1.SpaceChar;
  MaskEdit1.EchoMode:=emNormal;
  MaskEdit1.MaxLength:=8;
  MaskEdit1.NumbersOnly:=True;
  MaskEdit1.PasswordChar:=Char(0);
  MaskEdit1.SpaceChar:='_';
Die Eingabe funktioniert auch wunderbar, aber nach der Eingabe steht im Feld MaskEdit1.Text,
wenn ich 12,3 eingegeben habe, der Wert '12 ,3 '.
Ich möchte ber eigentlich '12,3' in MaskEdit1 stehen haben.
Gibt es da eine Möglichkeit?
Und noch was: Wenn man einen Wert ändern möchte, so muss man ihn ja vorher anzeigen.
Also stelle ich den alten Wert in MaskEdit1.Text.
Hier kann ich aber auch Müll einstellen. z.B. eine Zahl mit 2 Vorzeichen '-+12,3'.
Nicht gut.
bin mal auf Eure Antworten gespannt.
Gruß
Jürgen

wp_xyz
Beiträge: 5142
Registriert: Fr 8. Apr 2011, 09:01

Re: TMaskEdit

Beitrag von wp_xyz »

MaskEdit habe, ehrlichgesagt, nie verstanden. Viel zu kompliziert. Wenn du nur eine Zahleneingabe willst, nimm TSpinEdit/TFloatSpinEdit oder TSpinEditEx/TFloatSpinEditEx (bei letzteren kannst du auch die Spin-Buttons ausblenden, falls dich das stört.). Bei TFloatSpinEdit(Ex) legst du die Zahl der Nachkommastellen über "DecimalPlaces" fest, und dafür dass max 4 Stellen vor dem Komma erlaubt sein sollen, nimmst du MinValue -9999.9999 and MaxValue 9999.9999

Benutzeravatar
juelin
Beiträge: 244
Registriert: Sa 24. Jul 2021, 18:03
OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
CPU-Target: 64Bit
Wohnort: Mannheim

Re: TMaskEdit

Beitrag von juelin »

ja danke wp_xyz.
Das ist wirklich eine gute Alternative.
Gruß
Jürgen

Benutzeravatar
Ally
Beiträge: 280
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: TMaskEdit

Beitrag von Ally »

Hallo Jürgen,

schau dir doch mal mein RhsPack im Online-Package-Manager an.
Das Package enthält zwei Komponenten zur Eingabe von Zahlen.

Hier die Beschreibung dazu:

--------------------------------------------------------------------------------------------------------------------------
DecimalNumberEdit ist eine Komponente für die Eingabe von Zahlen.
--------------------------------------------------------------------------------------------------------------------------
Das Eingabefeld akzeptiert nur gültige Zahlen, die über die Eigenschaft Matrix eingegrenzt werden können.

Die Komponente stellt vier neue Eigenschaften zur Verfügung.

1. Matrix (String)
Über diese Eigenschaft wird das Zahlenformat definiert.

Beispiele:
99,99 Erlaubt die Eingabe von Werten im Bereich von 0 bis 99,99 mit zwei Dezimalstellen.
-50,9 Erlaubt die Eingabe von Werten im Bereich von -50,9 bis 50,9 mit einer Dezimalstelle.
250,000 Erlaubt die Eingabe von Werten im Bereich von 0 bis 250 mit drei Dezimalstellen.
-500 Erlaubt die Eingabe von Werten im Bereich von -500 bis 500 ohne Dezimalstellen.


2. Value (Extended)
Liefert den Extendedwert des eingegebenen Wertes zurück.
Dieser Wert kann während der Eingabe ausgewertet werden und repräsentiert den im Eingabefeld aktuell eingegebenen Wert.


3. EnterKey (Boolean)
Gestattet den Einsatz der Entertaste analog zur Tab-Taste.


4. WarningTone (Boolean)
Gibt einen Warnton aus, wenn unzulässige Eingaben gemacht werden.


Unter Windows werden die Lokalisierungseinstellungen wie z.B. der DecimalSeparator automatisch übernommen.
Soll das Projekt auch unter Linux / Unix die Lokalisierungseinstellungen verwenden,
sollte man den Projekt-Uses den Eintrag clocale hinzufügen.

Beispiel:

uses
{$IFDEF UNIX}{$IFNDEF DARWIN}
clocale, // Setzt die Lokalisierungseinstellungen (Zahlen-, Datums- und Zeit-Formate)
{$ENDIF}{$ENDIF}
SysUtils, Forms, ......



--------------------------------------------------------------------------------------------------------------------------
NumberEdit ist eine Komponente für die Eingabe von ganzen Zahlen.
--------------------------------------------------------------------------------------------------------------------------
Das Eingabefeld akzeptiert nur die Ziffern 0-9, wobei auch führende Nullen zulässig sind.

Die Komponente stellt zwei neue Eigenschaften zur Verfügung.

1. EnterKey (Boolean)
Gestattet den Einsatz der Entertaste analog zur Tab-Taste.


2. WarningTone (Boolean)
Gibt einen Warnton aus, wenn unzulässige Eingaben gemacht werden.


Gruß
Roland

Antworten