AGB  ·  Datenschutz  ·  Impressum  







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

editfeld nur zahlen und komma?

Ein Thema von arcangel · begonnen am 1. Nov 2008 · letzter Beitrag vom 2. Nov 2008
Antwort Antwort
Seite 1 von 2  1 2      
arcangel

Registriert seit: 1. Nov 2008
18 Beiträge
 
#1

editfeld nur zahlen und komma?

  Alt 1. Nov 2008, 19:46
hi, ich hab noch eine frage.. und zwar:
Delphi-Quellcode:
procedure TForm1.edteinkaufspreisKeyPress(Sender: TObject; var Key: Char);
begin
   If not(key in [#48..#57,#8, #44]) OR (pos(',',edteinkaufspreis.Text) < -1)
   then key := #0;

end;
damit verhindere ich die eingabe von buchstaben usw. bzw. ich lasse nur noch "0-9" "," und backspace zu...

jetzt wollt ich das noch (OR) so machen das die eingabe eines 2. kommas jedoch verhindert wird allerdings blockert das editfeld jetzt komplett nach der eingabe eines kommas und auch die zahlen sind nicht mehr eingebbar

jetzt brauch ich mal nen denkanstoss oder codeschnipsel den ich mir mal anschauen kann...

wie gesagt onkeypress soll nur "zahlen" "," und "backspace" zulassen jedoch kein zweites komma zulassen aber auch nicht blockieren, danke
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: editfeld nur zahlen und komma?

  Alt 1. Nov 2008, 19:55
Welche Delphiversion?
Du könntest auch einen MaskEdit verwenden und dann eine entsprechende Editmaske setzen ( ab D2009 auch beim normalen Edit möglich)
Markus Kinzler
  Mit Zitat antworten Zitat
arcangel

Registriert seit: 1. Nov 2008
18 Beiträge
 
#3

Re: editfeld nur zahlen und komma?

  Alt 1. Nov 2008, 19:57
hab d7^^ aber danke für den hinweis

hab mein problem gerade gelöst... hier das ergebnis:

Delphi-Quellcode:
   If not(key in [#48..#57,#8, #44])
   then key := #0;
If (Key = ',') and (edteinkaufspreis.Text = '') Then key := #0;
If (Key = ',') and (pos(',',edteinkaufspreis.Text) > 0) Then key := #0;
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#4

Re: editfeld nur zahlen und komma?

  Alt 1. Nov 2008, 19:57
Moin, Moin,
m.E. sollte die pos()-Prüfung auf >1 lauten. Ein Komma soll zugelassen werden, ein zweites nicht...
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von bigben37
bigben37

Registriert seit: 19. Dez 2007
Ort: Freiburg
116 Beiträge
 
Delphi 2009 Professional
 
#5

Re: editfeld nur zahlen und komma?

  Alt 2. Nov 2008, 08:48
Zitat von taaktaak:
Moin, Moin,
m.E. sollte die pos()-Prüfung auf >1 lauten. Ein Komma soll zugelassen werden, ein zweites nicht...
Wieso das?
Ich habe gedacht, pos() gibt die Position des Zeichens zurück. Steht auf jeden fall in der OH:

Zitat:
Gibt den Indexwert des ersten Zeichens innerhalb des angegebenen Teil-Strings zurück, der in einem String vorkommt.
Benjamin
Optimismus ist nur ein Mangel an Information
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: editfeld nur zahlen und komma?

  Alt 2. Nov 2008, 08:54
Genau, aber bei Strings fängt man bei '1' an zu zählen.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: editfeld nur zahlen und komma?

  Alt 2. Nov 2008, 09:22
Zitat von mkinzler:
Welche Delphiversion?
Du könntest auch einen MaskEdit verwenden und dann eine entsprechende Editmaske setzen ( ab D2009 auch beim normalen Edit möglich)
Hmm? Ich hab nur eine Property "NumbersOnly" und diese lässt auch kein Komma zu.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: editfeld nur zahlen und komma?

  Alt 2. Nov 2008, 09:27
So wie es aussieht kann man per copy&paste noch andere Dinge in dein Editfeld eintragen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: editfeld nur zahlen und komma?

  Alt 2. Nov 2008, 10:12
So wie ich das sehe ist die einzig halbwegs sichere Möglichkeit, im OnChange zu versuchen, den Text in eine Zahl zu wandeln.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: editfeld nur zahlen und komma?

  Alt 2. Nov 2008, 10:17
Zitat von DeddyH:
So wie ich das sehe ist die einzig halbwegs sichere Möglichkeit, im OnChange zu versuchen, den Text in eine Zahl zu wandeln.
Dann aber bittte nur mit "Hintergrund wird hellrot, wenns nicht geht"

Einfach sowas wie Edit1.Text := inttostr(strtointdef(edit.text, 0)); ist dermaßen nervig, wenn man mal was falsches eingibt und plötzlich isses wieder null

Oder stell dir vor, du hast in der zwischenablage zufälligerweise noch nen Buchstaben vor der Zahl ==> Man kanns nicht einfügen

Mein Vorschlag daher: einfärben, wenn der Inhalt falsch ist, und beim bestätigen des Dialogs dann auf den Fehler hinweisen (und Cursor reinsetzen)

Es nervt auch wenn das bereits im OnExit geschieht, sodass man sklavisch gezwungen wird, gefälligst sofort nen Wert einzutragen da man sonst nicht rauskommt.

Alles schon erlebt

Die beste Lösung ist eine, die den User nicht gängelt, und so möglichst wenig auffällt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:39 Uhr.
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