[DELPHI 7] TEdit voor getallen

Pagina: 1
Acties:

  • Geodan
  • Registratie: Maart 2003
  • Laatst online: 20-06-2025
Beste mede tweakers,

weet iemand misschien een component binnen delphi die de TEdit voor borland delphi 7 vervangt zodat er alleen wiskundige getallen ingevoerd kunnen worden.

zoals
Shortint, Smallint, Longint, Int64, Byte, Word, Longword, Integer, cardinal, Real, single, double, extended.

Het zou mooi zijn als er een component was waar je in de object inspector het type kan kiezen, en dat de invoer meteen wordt gecontroleerd tijdens het intypen.

wanneer er alleen getallen in het veld mogen dan heb ik de volgende code

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TClassification.ClassCountKeyPress(Sender: TObject;
  var Key: Char);
begin
    Case Key Of
    '0': Exit;
    '1': Exit;
    '2': Exit;
    '3': Exit;
    '4': Exit;
    '5': Exit;
    '6': Exit;
    '7': Exit;
    '8': Exit;
    '9': Exit;
  End;
    Key := #0; {Gooi de toets weg}
end;


maar zo'n component die meteen alle types ondervangt zou echt ideaal zijn.

greetz

Verwijderd

Mijn Delphi is lang geleden,
maar je kunt toch in de object inspector simpelweg een masker definieren voor de TEdit dat alleen getallen toelaat?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Je kunt uiteraard een maskedit gebruiken en die instellen om alleen numerieke waardes te accepteren. Ook kun je jouw code een stuk netter maken door de volgende code te gebruiken (onnodig exit is bah ;) )
code:
1
2
3
4
5
6
7
8
procedure TClassification.ClassCountKeyPress(Sender: TObject;
  var Key: Char);
begin
//48 tm 57 zijn de ordjes van 0 tm 9. 8 is de backspace.
//Je zou misschien de komma en de min nog willen toevoegen ;)
  if NOT ((ord(key) in [48..57]) OR (ord(key) = 8)) then
    key := #0;
end;
Er zijn ook componenten te vinden bij bijvoorbeeld torry of de delphi super page.

[ Voor 8% gewijzigd door OZ-Gump op 24-07-2003 11:08 ]

My personal website


  • Geodan
  • Registratie: Maart 2003
  • Laatst online: 20-06-2025
Het is nog een stukje ingewikkelder voor Float getallen
dat kan namelijk 1e+36 oid. Dus een simpele mask die alleen getallen toelaat werkt niet altijd.

in het geval van de komma, dan kun je een getal invoeren met meerdere komma's erin, dus dan moet het hele getal gecontroleerd worden.

Het is zo'n veel voorkomend iets, en ik snap ook niet dat het standaard in delphi zit.

  • Geodan
  • Registratie: Maart 2003
  • Laatst online: 20-06-2025
een goed voorbeeld van wat ik bedoel staat op
http://www.torry.net/vcl/edits/enh/editnew.zip
deze kan echter alleen int string real en word aan

  • Chrizzly
  • Registratie: Januari 2003
  • Laatst online: 04-07 21:50
En als je e en + ook toestaat? e alleen als er een cijfer voor staat en + alleen na een e.

Lijkt op een rekenmachine?
Pagina: 1