AGB  ·  Datenschutz  ·  Impressum  







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

Geldbeträge in Editboxen

Ein Thema von mannewolff · begonnen am 24. Jun 2009 · letzter Beitrag vom 24. Jun 2009
 
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Geldbeträge in Editboxen

  Alt 24. Jun 2009, 11:23
Eine neue Zuweisung an Edit.Text setzt aber den Cursor zurück. Wäre also für Prüfung nach der Eingabe OK.

Für die Prüfung bei der Eingabe hatte ich für ein Gewichtsfeld auch mal was gebastelt:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
const
  EditKeys = #13#8#9;
  Ciphers = '0123456789';
  MaxFrac = 2;
var
  i : Integer;
  aText : String;
begin
  aText := TEdit(Sender).Text;
  i := Pos(DecimalSeparator, aText);
  if i > 0 then
    if (Length(aText) -i) < MaxFrac then
      aText := Ciphers + Editkeys
    else
      aText := EditKeys
  else
    aText := Ciphers + EditKeys + DecimalSeparator;
  if Pos(Key, aText) <= 0 then Key := #0
end;
€: Für Währung müsste man noch das Minus-Zeichen in Ciphers aufnehmen und eigentlich auch auf 1x vorhanden Testen (war bei Gewicht aber nicht nötig)

Also so in etwa:
Delphi-Quellcode:
procedure SetValidFloatKey(var aKey : Char; const CurrText : String; OnlyAbs : Boolean; MaxFrac : Integer = 2);
const
  EditKeys = #13#8#9;
  Ciphers = '-0123456789';
var
  i : Integer;
  aText : String;
begin
  aText := CurrText;
  if (aKey = '-') and ((Length(aText) > 0) or (OnlyAbs)) then
    aKey := #0
  else
    i := Pos(DecimalSeparator, aText);
    if i > 0 then
      if (Length(aText) -i) < MaxFrac then
        aText := Ciphers + Editkeys
      else
        aText := EditKeys
    else
      aText := Ciphers + EditKeys + DecimalSeparator;
    if Pos(aKey, aText) <= 0 then aKey := #0
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  SetValidFloatKey(Key, TEdit(Sender).Text, False, 2);
end;
€: Universeller gestaltet.

Ein Schönheitsfehler hat es noch... Minus wird nur bei leerem Edit erlaubt. Da müsste man nachbessern.
  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 10:01 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