Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Editfelder für Buchstaben sperren (https://www.delphipraxis.net/80884-editfelder-fuer-buchstaben-sperren.html)

naudoc 16. Nov 2006 22:47


Editfelder für Buchstaben sperren
 
Hallo,

ich suche (mal wieder für den Taschenrechner :lol: ) einen Code, der Editfelder für Buchstaben und Sonderzeichen sperrt, denn wenn ich zB 'kk'+'kk' "rechne" kommt der Fehler "'kk' ist kein gültiger Gleitkommawert". Dies möchte ich verhindern, oder evtl. sogar so Programmieren, dass sich ein eigenes Popupfeld öffnet mit dem Text "Kann man mit Buchstaben rechnen? Depp!", oder einfach nur in nem Label "Rechnen mit Buchstaben geht nicht wirklich" erscheint.
Wär cool, wenn ihr mir helfen könntet.

Danke schon mal!
mfG Max

PS: Kennt ihr ein nützliches Programm an dem man programmieren üben kann?(Wie zB der Taschenrechner).

mkinzler 16. Nov 2006 22:53

Re: Editfelder für Buchstaben sperren
 
TMaskEdit oder mit Eventbehandlungsroutine auf falsche Eingabe reagieren.

Luckie 16. Nov 2006 22:58

Re: Editfelder für Buchstaben sperren
 
Das haben wir schon so oft hier besprochen. Einfach mal die Suche bemühen.

naudoc 16. Nov 2006 23:03

Re: Editfelder für Buchstaben sperren
 
Hi

@mkinzler: Ich versteh nur Bahnhof, sorry

@Luckie: ich hab nach editfeld buchstaben sperren gesucht, aber nichts gefunden. Wonach muss ich suchen?

Danke!
mfG Max

Mackhack 16. Nov 2006 23:05

Re: Editfelder für Buchstaben sperren
 
Hm,

ich habe eingegeben: keine buchstaben zulassen! Da kommen schon x Taschenrechner-Threads hervor!

naudoc 16. Nov 2006 23:06

Re: Editfelder für Buchstaben sperren
 
danke!

paritycheck 16. Nov 2006 23:10

Re: Editfelder für Buchstaben sperren
 
Ich mach das immer so:

Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject); //Diese Prozedur als OnChange um Copy/Paste zu verhindern
var i: Integer;
begin
  for i:= 1 to length(Edit1.Text) do begin
      if not (Edit1.Text[i] in ['0'..'9']) then begin
         Edit1.Text:= '';
         break;
      end;
  end;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); //Das hier im OnKeyPress fängt alles ab was keine Zahl is
begin
  if not (Key in ['0'..'9']) then Key:= #0;
end;

mkinzler 16. Nov 2006 23:15

Re: Editfelder für Buchstaben sperren
 
Zitat:

@mkinzler: Ich versteh nur Bahnhof, sorry
TMaskEdit ist eine Komponente, die eien Eingabemaske besitzt, die regelt was man eingeben kann.
Das mit dem Event hat paritycheck genauer beschrieben.

naudoc 25. Nov 2006 00:38

Re: Editfelder für Buchstaben sperren
 
Hallo,
was ist hier Falsch:
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var a,b,c:real;
begin
if ((edit1.text=floattostr(a)) or (edit1.text='-'+floattostr(a)+'') or (edit1.text='0') or (edit1.text=''))
and ((edit2.text=floattostr(b)) or (edit2.text='-'+floattostr(b)+'') or (edit2.text='0') or (edit2.text=''))
and ((edit3.text=floattostr(c)) or (edit3.text='-'+floattostr(c)+'') or (edit3.text='0') or (edit3.text=''))
then
mfG naudoc

Luckie 25. Nov 2006 00:46

Re: Editfelder für Buchstaben sperren
 
Zitat:

Zitat von naudoc
was ist hier Falsch:

Gar nichts. Kompiliert einwandfrei. Bis auf die Warnungen:
Zitat:

[Warning] Unit1.pas(31): Variable 'a' might not have been initialized
[Warning] Unit1.pas(31): Variable 'b' might not have been initialized
[Warning] Unit1.pas(31): Variable 'c' might not have been initialized
Aber, da du den Variablen keinen Wert zu weist, sind diese warnungen ohne weiteres nachvollziehbar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:23 Uhr.
Seite 1 von 3  1 23      

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 by Thomas Breitkreuz