Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Edit Feld mit Eingabe Beschränkung (https://www.delphipraxis.net/59063-edit-feld-mit-eingabe-beschraenkung.html)

renekr 16. Dez 2005 19:59


Edit Feld mit Eingabe Beschränkung
 
Hi,
habe zwar schon einiges hier gefunden aber nicht das passende:

Habe ein Edit Feld das zur Eingabe eines Preises verwendet werden sollte:

Beschränkungen:

- Nur Zahlen
- Nur Punkt anstelle von Komma wegen SQL Server Float wert.
- Max .2 Nachkomma stellen.


Habe mitbekommen das es von Indy was geben soll aber habe es nicht gefunden.

Vielen Dank.

ichbins 16. Dez 2005 20:04

Re: Edit Feld mit Eingabe Beschränkung
 
Kannst du ganz leicht selber schreiben: onkeydown

Delphi-Quellcode:
if (key<>'1') or (length(self.text)>7) then //Beliebig erweiterbar
  key:=#0;

ManuMF 17. Dez 2005 11:26

Re: Edit Feld mit Eingabe Beschränkung
 
Hallo,

Einfach das OnKeyPress-Event nutzen:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  // Nur '.', Zahlen und Backspace zulassen
  If not (Key in [#46, #48..#57, #8]) then
    Key := #0;

  // Wenn mehr als 2 Nachkommastellen und Taste kein Backspace -> ignorieren
  If (Pos('.', Edit1.Text) <> 0) then
  begin
   if (Length(Edit1.Text) - Pos('.', Edit1.Text) >= 2) then
   begin
     if (Key <> #8) then
       Key := #0;
   end;
  end;
end;
Gruß,
ManuMF

Christian18 17. Dez 2005 11:34

Re: Edit Feld mit Eingabe Beschränkung
 
Hallo,

was willst du jetzt eigentlcih machen??? ich versteh deine Frage nicht so richtig.

MFG Christian18

ManuMF 17. Dez 2005 11:38

Re: Edit Feld mit Eingabe Beschränkung
 
Ich glaube, es geht um ein Editfeld mit "." als Dezimalzeichen, das nur Zahlen und 2 Nachkommastellen zulässt.

Wenn es eine fertige Komponente gibt, dann sicher eher von den JEDIs, nicht den Indys ;-)

[Edit]Ja. TJvValidateEdit, wenn es dfCurrency als DisplayFormat hat. Die Eigenschaft Value liefert dann eine Kommazahl.[/edit]

renekr 17. Dez 2005 13:54

Re: Edit Feld mit Eingabe Beschränkung
 
Hi,
Vielen Dank für eure Hilfe.

Nochmal zur verdeutlichung :
Ich will ein Edit Feld,
wo man nur Preise eingeben darf mit einem Punkt und 2 Nachkomma stellen.

Weil manche es nciht kapieren .

Das von ManuMF kommt sehr nahe an meine Vorstellung ran.
Allerdings kan n i da ..2 eingeben ,also mit 2 Punkten .
PS : Kann mir jemand sagen wo ich die Key Bezeichnung herbekomme zb #13 = return?



Vielen Dank.

Amateurprofi 17. Dez 2005 14:33

Re: Edit Feld mit Eingabe Beschränkung
 
schreib in Deinen Source Code z.B. vk_return, dann klicke vk_return mit der rechten Mousetaste und wähle im Popup-Menu 'Deklaration zeigen'. Dann müßtest Du irgendwo in der Windows.pas landen, wo die vk_xxxxx definiert sind.

Amateurprofi 17. Dez 2005 14:42

Re: Edit Feld mit Eingabe Beschränkung
 
Hatte ich vergessen : Versuche es doch mal mit TMaskEdit.
Findest Du in der Tool-Palette unter Zusätzlich.

tigerman33 17. Dez 2005 14:45

Re: Edit Feld mit Eingabe Beschränkung
 
Das mit den zwei Punkten müsste sich so lösen lassen:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  // Nur '.', Zahlen und Backspace zulassen
  If not (Key in [#46, #48..#57, #8]) then
    Key := #0;

  // Wenn mehr als 2 Nachkommastellen und Taste kein Backspace -> ignorieren
  If (Pos('.', Edit1.Text) <> 0) then
  begin
   if Key = '.' then // <---
     Key := #0; // <--- die beiden Zeilen hier sind neu, Rest wie bei ManuMF
   if (Length(Edit1.Text) - Pos('.', Edit1.Text) >= 2) then
   begin
     if (Key <> #8) then
       Key := #0;
   end;
  end;
end;

ManuMF 17. Dez 2005 14:51

Re: Edit Feld mit Eingabe Beschränkung
 
@tigerman33 / renekr: Stimmt, daran habe ich nicht gedacht. So müsste es dann funktionieren.

Virtuelle Tastencodes: Siehe auch Delphi-Referenz durchsuchenVirtuelle Tastencodes ;-)
oder Wikipedia ASCII.

Gruß,
ManuMF


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz