Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Edit-Box Eingabe Kontrolle (https://www.delphipraxis.net/118818-edit-box-eingabe-kontrolle.html)

rich123 15. Aug 2008 14:11


Edit-Box Eingabe Kontrolle
 
Hallo zusammen,

Wie kontrolliert man ob jemand in eine EditBox eine Zahl oder Text eingegeben hat?
Gibts dazu vielleicht ein Command?

Danke schonmal

Gruß

DeddyH 15. Aug 2008 14:17

Re: Edit-Box Eingabe Kontrolle
 
Versuch doch einfach, ob sich der eingegebene Text in eine Zahl konvertieren lässt. Wenn Du nur Zahlen zulassen willst, kannst Du Dir mal TMaskEdit ansehen.

Overclocker 15. Aug 2008 14:20

Re: Edit-Box Eingabe Kontrolle
 
wenn du den text aber in eine zahl konvertieren willst, dann benutz

strttofloat ()

da strtoint ja nur ganze zahlen umwandelt

grüße

delphis spassbremse 15. Aug 2008 14:20

Re: Edit-Box Eingabe Kontrolle
 
Das Thema wurde hier schon öfters behandelt.
Benutze mal die Suchfunktion...

Du kannst im KeyPress event via
Delphi-Quellcode:
if Key in ['0'..'9'] then
  // Es wurde eine Zahl eingegebn
else
  // Es wurde ein anderes Zeichen eingeben
prüfen, was eingegeben wurde.


Björn

mkinzler 15. Aug 2008 14:26

Re: Edit-Box Eingabe Kontrolle
 
Oder man nimmt eine spezielle Kompo wie z.B. ne MaskEdit o.ä.

Deep-Sea 15. Aug 2008 14:27

Re: Edit-Box Eingabe Kontrolle
 
Zitat:

Zitat von mkinzler
Oder man nimmt eine spezielle Kompo wie z.B. ne MaskEdit o.ä.

Ist für reine Zahleneingaben ein SpinEdit (z.B. TJvSpinEdit) nicht noch ein wenig besser geeignet?! Finde ich zumindest :lol:

Neutral General 15. Aug 2008 14:30

Re: Edit-Box Eingabe Kontrolle
 
Hi,

Ich mache es immer so:

Delphi-Quellcode:
if not (Key in ['0'..'9',Chr(VK_BACK),Chr(VK_DELETE)]) then
  Key := #0;
Wenn man VK_BACK und VK_DELETE weglässt, dann wirds schwer eine Eingabe zu korrigieren *g*

Gruß
Neutral General

Deep-Sea 15. Aug 2008 14:32

Re: Edit-Box Eingabe Kontrolle
 
Zitat:

Zitat von Neutral General
Ich mache es immer so:

Delphi-Quellcode:
if not (Key in ['0'..'9',Chr(VK_BACK),Chr(VK_DELETE)]) then
  Key := #0;

Und wie fängst du es ab, das jemand etwas aus der Zwischenablage einfügt? :P ...
Tja, da sieht man, welche Probleme dadurch entstehen (*hust* SpinEdit *hust* :mrgreen:)

DeddyH 15. Aug 2008 14:32

Re: Edit-Box Eingabe Kontrolle
 
Hallo, die Frage war
Zitat:

Wie kontrolliert man ob jemand in eine EditBox eine Zahl oder Text eingegeben hat?
und nicht "Welche Komponente lässt nur Zahlen zur Eingabe zu?". Wenn die bisherigen Antworten den TE nicht weiterbringen, kann er sich ja wieder melden.

Neutral General 15. Aug 2008 14:35

Re: Edit-Box Eingabe Kontrolle
 
Zitat:

Zitat von Deep-Sea
Zitat:

Zitat von Neutral General
Ich mache es immer so:

Delphi-Quellcode:
if not (Key in ['0'..'9',Chr(VK_BACK),Chr(VK_DELETE)]) then
  Key := #0;

Und wie fängst du es ab, das jemand etwas aus der Zwischenablage einfügt? :P ...
Tja, da sieht man, welche Probleme dadurch entstehen (*hust* SpinEdit *hust* :mrgreen:)

Regelmäßig die Zwischenablage leeren ;)










Ok war nurn Scherz :mrgreen:

Deep-Sea 15. Aug 2008 14:38

Re: Edit-Box Eingabe Kontrolle
 
Zitat:

Zitat von Neutral General
Regelmäßig die Zwischenablage leeren ;)



Ok war nurn Scherz :mrgreen:

Solche Sachen würde mein Chef auch sagen ... nur er würde es ernst meinen :mrgreen:
(Uhh, zu viel OT ... schnell zurück zum Thema, sonst gibts Ärger *gg*) ...

rich123 15. Aug 2008 14:41

Re: Edit-Box Eingabe Kontrolle
 
Hallo,

Danke für Eure Hilfe.
Ich habe es mit dem KeyPress Ereignis gelöst.

Gruß

Deep-Sea 15. Aug 2008 14:42

Re: Edit-Box Eingabe Kontrolle
 
Zitat:

Zitat von rich123
Ich habe es mit dem KeyPress Ereignis gelöst.

Wie gesagt: Denk an die Zwischenablage! :roll:

IceBube 15. Aug 2008 14:53

Re: Edit-Box Eingabe Kontrolle
 
Das Problem mit der Zwischenablage ist leicht zu lösen:

Einfach dem Editfeld ein eigenes PopUp Menü(TPopUpMenu) zuweisen, dann funktioniert das einfügen nicht mehr!


lg

delphis spassbremse 15. Aug 2008 14:58

Re: Edit-Box Eingabe Kontrolle
 
CTRL + V ?

:twisted:

IceBube 15. Aug 2008 14:59

Re: Edit-Box Eingabe Kontrolle
 
"Strg + V" geht doch, da hab ich mich geirrt sry!

Deep-Sea 15. Aug 2008 14:59

Re: Edit-Box Eingabe Kontrolle
 
Zitat:

Zitat von IceBube
Das Problem mit der Zwischenablage ist leicht zu lösen:

Einfach dem Editfeld ein eigenes PopUp Menü(TPopUpMenu) zuweisen, dann funktioniert das einfügen nicht mehr!


lg

Wow, was für eine Lösung - ich persönlich hasse es wie die Pest, wenn mir ein schlecht programmiertes Programm alle Möglichkeiten nimmt, nur weil der Programmierer zu faul ist ... nein halt, ein SpinEdit zu nutzen ist eig. noch viel leichter als diese komische Methode, da man dadurch kein bisschen Code für braucht und dazu auch noch Min- und Max-Grenzen setzen kann, etc. ...

(Sry, dass es etwas rau klingt, steiger mich in sowas zu gerne rein :lol: )

Neutral General 15. Aug 2008 15:03

Re: Edit-Box Eingabe Kontrolle
 
@Deep-Sea: Aber vielleicht will man ja ein Edit, in dem man nur Zahlen eingeben darf und kein SpinEdit :P :mrgreen:

Deep-Sea 15. Aug 2008 15:04

Re: Edit-Box Eingabe Kontrolle
 
Zitat:

Zitat von Neutral General
@Deep-Sea: Aber vielleicht will man ja ein Edit, in dem man nur Zahlen eingeben darf und kein SpinEdit :P :mrgreen:

Du kennst schon die Komponenten TSpinEdit oder TJvSpinEdit? Dort kann man nur Zahlen eingeben. Genau dafür sind sie ya da :-D (Oder was meinst du?)

(*feierabend mach*)

mkinzler 15. Aug 2008 15:06

Re: Edit-Box Eingabe Kontrolle
 
Ist aber auch kein normaler Edit.

IceBube 15. Aug 2008 15:06

Re: Edit-Box Eingabe Kontrolle
 
Zitat:

Zitat von Neutral General
IceBube.. Was soll das bringen?

Man überprüft das Clipboard! Wenn es nur Zahlen beinhaltet, dann ist es erlaubt was einzufügen!

Zitat:

Zitat von Neutral General
Außerdem warum StrToFloat?

...hab ich nur schnell geschrieben, jedoch funktioniern tut es ;)...

Zitat:

Zitat von Neutral General
Und wie gesagt. Schonmal was von der Tastenkombination Strg+V gehört? Man braucht kein Popup Menu um in einem Edit was einfügen zu können ;)

Wie oft soll ich mich wiederholen?

Zitat:

Zitat von IceBube
Es funktioniert wenn man dem Editfeld ein PopUp zuweist und ein Item hinzufügt mit dem Shortcut Strg+V! So dann wäre das Problem gelöst

^Ist nicht die idealste Lösung, jedoch immerhin besser als das Clipboard die ganze Zeit zu löschen ;)

lg

Neutral General 15. Aug 2008 15:07

Re: Edit-Box Eingabe Kontrolle
 
Zitat:

Zitat von Deep-Sea
Zitat:

Zitat von Neutral General
@Deep-Sea: Aber vielleicht will man ja ein Edit, in dem man nur Zahlen eingeben darf und kein SpinEdit :P :mrgreen:

Du kennst schon die Komponenten TSpinEdit oder TJvSpinEdit? Dort kann man nur Zahlen eingeben. Genau dafür sind sie ya da :-D (Oder was meinst du?)

(*feierabend mach*)

Zitat:

Zitat von mkinzler
Ist aber auch kein normaler Edit.

Genau das meine ich ;)

Ein Spinedit hat die Spin-Buttons. Allein deswegen ist ein Spinedit kein Edit xD

Deep-Sea 15. Aug 2008 15:09

Re: Edit-Box Eingabe Kontrolle
 
Zitat:

Zitat von mkinzler
Ist aber auch kein normaler Edit.

Wo ist der Vorteil bzw. Unterschied? ...

Zitat:

Zitat von IceBube
hm? Was meinst du mit "alle Möglichkeiten nimmt"? Wenn in dem Edit Feld nur Zahlen gehören, dann muss man auch das Eingeben von Buchstaben(etc.) unterbinden!

Ein SpinEdit finde ich deshalb nicht gut, weil die Mindestgröße(ich glaub 25) größer ist als das Editfeld(in Normalgröße 24). Zudem schaut ein Edit manchmal besser aus!

Aber das kann jeder selber entscheiden finde ich ;)

lg

Edit:
Es funktioniert wenn man dem Editfeld ein PopUp zuweist und ein Item hinzufügt mit dem Shortcut Strg+V! So dann wäre das Problem gelöst

Mit alle Möglichkeiten mein ich zB. die Zwischenablage. Diese kann ya auch Zahlen enthalten. Warum darf ich diese also nicht nutzen? Weil der Programmierer schlecht programmiert? Na danke :P ...

Zum besser aussehen: Ein SpinEdit ohne die Buttons (kann man bei TJvSpinEdit abschalten) sieht dann genau so aus wie ein normales, da gibt es keinen unterschied :-D



(*offline bin*)

mkinzler 15. Aug 2008 15:11

Re: Edit-Box Eingabe Kontrolle
 
Ich habe ja nicht gesagt, dass ein SpinEdit schlecht ist. Seine Frage war aber, wie er bei einem Edit die Eingabe verhindert.

IceBube 15. Aug 2008 15:15

Re: Edit-Box Eingabe Kontrolle
 
Dann bleibt natürlich die Möglichkeit, das Clipboard zu überprüfen!?!

Zum Beispiel so:

Delphi-Quellcode:
uses ClipBrd;

procedure EditMouseDown();
var s : double;
begin
try s := strToFloat(Clipbrd.Clipboard.AsText);
Edit1.PopupMenu := nil;
except
Edit1.PopupMenu := PopUp;
end;

Neutral General 15. Aug 2008 15:24

Re: Edit-Box Eingabe Kontrolle
 
IceBube.. Was soll das bringen?

Das ist relativ sinnlos. Außerdem warum StrToFloat?

Und wie gesagt. Schonmal was von der Tastenkombination Strg+V gehört? Man braucht kein Popup Menu um in einem Edit was einfügen zu können ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:59 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