Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eingabe in tEdit beschränken (https://www.delphipraxis.net/9735-eingabe-tedit-beschraenken.html)

hummer 2. Okt 2003 17:03


Eingabe in tEdit beschränken
 
Hallo

die procedure, die verhindert, dass man in ein edit Feld was anderes als Zahlen eingibt habe ich im Forum schon gefunden.

Delphi-Quellcode:
  if not (Key in ['0'..'9', #8]) then
  Key := #0;
Jetzt möchte ich aber noch die Eingabe eines Minuszeichen erlauben. Ein Minuszeichen darf nur einmal eingegeben werden. Auch wenn im Edit Feld schon Zahlen stehen und man drückt das Minuszeichen soll das Minuszeichen am Anfang des Terms geschrieben werden. Betätigt man öfter als ein mal das Minuszeichen soll es wieder entfert oder hinzugefügt werden.

Ich hab aber keine Ahnung wie ich das lösen soll.

Hoffe mein Problem ist nicht zu unverständlich beschrieben. :-D

Dagon 2. Okt 2003 17:07

Re: Eingabe in tEdit beschränken
 
So was habe ich auch schon verwendet (zumindest etwas ähnliches). Ich muss es aber zu erst auf meiner Platte suchen.

Christian Seehase 2. Okt 2003 17:18

Re: Eingabe in tEdit beschränken
 
Moin Hummer,

Delphi-Quellcode:
if (Key in ['0'..'9', #8]) or ((Key = '-') and (pos('-',Edit1.Text) = 0)) then begin
  if Key = '-' then begin
    Edit1.Text := '-' + Edit1.Text;
    Key := #0;
  end;
end else begin
  Key := #0;
end;
ungetestet, und einfach hier mal reingehackt.
Im Prinip müsstest Du ja nur noch zusätzlich auf das '-' testen, dass aber nur zugelassen ist, wenn es noch nicht enthalten ist.
Als Verbesserung könnte man sich noch die aktuelle Caretposition merken wenn es ein, zugelassenes, '-' war und dann wieder Herstellen.

SirThornberry 2. Okt 2003 17:21

Re: Eingabe in tEdit beschränken
 
Delphi-Quellcode:
if (key = '-') then
begin
  key := #0;
  if pos('-', Edit1.Text) < 1 then Edit1.Text := '-' + Edit1.Text else Edit1.Text := copy(Edit1.Text, 2, length(Edit1.Text)-1);
end;
Den Code noch mit in die Keypressmethode reinstopfen. Allerdings musst du dann noch den Cursor wieder an die richtige Stelle setzen

@chris: So weit ganz gut, du musst hast aber vergessen das minuszeichen wieder zu entfernen bei erneutem press

Matze 2. Okt 2003 17:22

Re: Eingabe in tEdit beschränken
 
oder so:

Delphi-Quellcode:
if Key = '-' then begin Edit1.Text:=IntToStr(StrToInt(Edit1.Text)*-1)
Ist aber nicht elegant. :mrgreen:

Christian Seehase 2. Okt 2003 17:29

Re: Eingabe in tEdit beschränken
 
Moin SirThornberry,

Zitat:

Zitat von SirThornberry
So weit ganz gut, du musst hast aber vergessen das minuszeichen wieder zu entfernen bei erneutem press

Stimmt, das hatte ich übersehen :oops:


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