AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Währungeingabe mit TMaskEdit?

Ein Thema von Alallart · begonnen am 19. Jan 2019 · letzter Beitrag vom 21. Jan 2019
 
Alallart

Registriert seit: 8. Dez 2015
170 Beiträge
 
#5

AW: Währungeingabe mit TMaskEdit?

  Alt 20. Jan 2019, 14:41
Ich habe mir etwas programmiert. Es ist möglich nur Zahlen und ein Komma einzugeben, und Prozedur springt bei Enter-Taste in das nächste Feld. Vielleicht kann der eine oder andere mal drüber gucken ob da ein Fehler erkennbar ist oder man es besser machen kann.

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
const
  decPlaces = 2; //Anzahl Nachkommastellen
var
  s: string;
  p: Integer;
begin
  s := TEdit(Sender).Text;
  p := Pos(DecimalSeparator, s); //DecimalSeparator = Komma in DE

  //Begrenzt Eingabe auf folgende Zeichen
  if not (Key in ['0'..'9', DecimalSeparator, #8]) then // #8 = Backspace-Taste
    Key := #0;

  //WICHTIG: Diese Abfrage muss vorne stehen, sonst wird RETURN u. U. ignoriert.
  //Schickt Fokus bei ENTER zum nächsten Element.
  if Key = Chr(VK_RETURN) then //Wenn Return gedrückt wird...
  begin
    if s = 'then //Wenn Feld leer, dann vor dem Exit 0 eingeben.
      Key := '0';

    Self.Perform(WM_NEXTDLGCTL, 0, 0); //Springt zum nächsten Control
  end;

  //Lässt kein zweites Komma zu
  if (p > 0) and (Key = DecimalSeparator) then
  begin
    Key := #0;
    Exit;
  end;

  //Begrenzt die Eingabe auf z.B. zwei Nachkomma-Stellen
  if (Key <> #8) then //Backspace-Taste zulassen
    if (p > 0) then
      if Length(s) >= (p + decPlaces) then
      begin
        Key := #0;
        Exit;
      end;
end;

Geändert von Alallart (20. Jan 2019 um 14:45 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:11 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