Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Edit Eingabe nur auf Zahlen beschränken, Probleme mit ^ (https://www.delphipraxis.net/119162-edit-eingabe-nur-auf-zahlen-beschraenken-probleme-mit-%5E.html)

DeddyH 22. Aug 2008 12:04

Re: Edit Eingabe nur auf Zahlen beschränken, Probleme mit ^
 
Demnächst gibt es ein NumberEdit in der VCL, damit dürften sich diese Probleme erledigt haben.

Angel4585 22. Aug 2008 12:16

Re: Edit Eingabe nur auf Zahlen beschränken, Probleme mit ^
 
Also man soll nur Zahlen eingeben können?
Ich mach das immer so:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9'])then Key:=#0;
end;
Also in die KeyPress un nich KeyDown

DeddyH 22. Aug 2008 12:17

Re: Edit Eingabe nur auf Zahlen beschränken, Probleme mit ^
 
Und die Zwischenablage?

Angel4585 22. Aug 2008 12:20

Re: Edit Eingabe nur auf Zahlen beschränken, Probleme mit ^
 
Delphi-Quellcode:
procedure TForm1.Edit1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
Handled:=true;
end;
Das man au immer erst den Holzhammer rausholen muss :lol:

TonyR 22. Aug 2008 12:24

Re: Edit Eingabe nur auf Zahlen beschränken, Probleme mit ^
 
Die Variante mit dem Showmessage hatte ich im Übrigen auch schon, die is aber doof.

Ich will ja keine nachricht aufploppen lassen.

Da is das mit dem PopupMenü besser finde ich.

DeddyH 22. Aug 2008 12:27

Re: Edit Eingabe nur auf Zahlen beschränken, Probleme mit ^
 
So, Backspace geht nicht, also müsste #8 mit in die Menge, und über SHIFT-EINFG kann ich immer noch aus der Zwischenablage einfügen.

ATSV 22. Aug 2008 12:45

Re: Edit Eingabe nur auf Zahlen beschränken, Probleme mit ^
 
Delphi-Quellcode:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = 45 then begin
    ShowMessage('');   // oder sonst irgendwas
  end;
end;
dann geht auch Shift + Einfg nicht mehr wenn du das meinst

Reinhardtinho 22. Aug 2008 13:08

Re: Edit Eingabe nur auf Zahlen beschränken, Probleme mit ^
 
Jedi installiert?

Wenn ja, dann Komponente TJvValidateEdit nehmen.

Properties setzen:
CheckChars = 0123456789
DisplayFormat = dfInteger
MaxLength (=1) oder MaxValue (=9) einstellen

Fertig!

MFG
Lorenz


Nachtrag:

Funktioniert auch, wenn man über Strg+V oder rechte Maustaste->Einfügen einen Text einfügt, der Zahlen und Buchstaben enthält. Es werden nur die Zahlen eingetragen.

Glühwürmchen 22. Aug 2008 13:36

Re: Edit Eingabe nur auf Zahlen beschränken, Probleme mit ^
 
Macht richtig Spaß zu lesen, was Euch alles für Tricks einfallen, um die angebotenen Lösungen auszuhebeln.
Bin gespannt, was gegen meine übliche Vorgehensweise spricht....:

Delphi-Quellcode:
procedure TfrmMain.Edit1Exit(Sender: TObject);
begin
  try
    StrToInt(Edit1.Text);
  Except
    Edit1.Text := '0';
    Edit1.SetFocus;
    Edit1.SelectAll;
  end;
end;

Edit: Gerne auch mit StrToFloat...

TonyR 22. Aug 2008 13:39

Re: Edit Eingabe nur auf Zahlen beschränken, Probleme mit ^
 
Zitat:

Zitat von Glühwürmchen
...Bin gespannt, was gegen meine übliche Vorgehensweise spricht....: ...

Das finde ich ansich gar nicht so schlecht, aber vllt. sollte man nicht alles auf NULL setzen, sondern nur die ungültigen zeichen per Schleife aus dem Edit entfernen ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 Uhr.
Seite 3 von 4     123 4      

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