[Delphi] MaskEdit probleem

Pagina: 1
Acties:
  • 116 views sinds 30-01-2008
  • Reageer

  • Ecco
  • Registratie: April 2000
  • Laatst online: 27-01 00:46
Is misschien een beetje domme vraag, maar ik zoek er al tijden naar...

Met Delphi lukt het me alleen maar met MaskEdit om bijvoorbeeld alleen getallen te accepteren, maar wat ik wil is wat complexer.
Ik wil ook aan kunnen geven welke getallen ingevoerd kunnen worden, zoals alleen nullen en enen, of hexadecimale getallen etc.

Ik hoop überhaupt dat het mogelijk is...

Kan iemand mij helpen?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Gewoon een TEdit (of TMaskEdit) pakken en de OnKeyPress implementeren. De Key parameter is 'by-reference', dwz. dat je 'm kunt wijzigen als ie je niet bevalt. Je kunt dus gewoon een check doen of het ingevoerde karakter legaal is in de context en/of de al ingevoerde tekst, en zo nee verander je Key gewoon in nul (oftewel truncate).

[edit]
Voorbeeldje in C++Builder:
code:
1
2
3
4
5
6
7
8
9
10
void __fastcall EditKeyPress(System::TObject* Sender, char &Key)
{
// Sta alleen hexadecimale karakters toe en backspace
if((Key < '0' || Key > '9') && (Key < 'a' || Key > 'f') &&
   (Key < 'A' || Key > 'F') && Key != '\b')
  {
  // Zet key op nul zodat ie genegeerd wordt
  Key = 0;
  }
}

Professionele website nodig?


  • Ecco
  • Registratie: April 2000
  • Laatst online: 27-01 00:46
Okay ontzettend bedankt.
Nadeel is dat je met Delphi als het goed is de < en > operators niet met chars kan gebruiken dus zou ik alles moeten omrekenen naar ASCII codes met Ord().
Of heb ik het fout?

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Op zaterdag 22 september 2001 02:27 schreef Ecco het volgende:
Okay ontzettend bedankt.
Nadeel is dat je met Delphi als het goed is de < en > operators niet met chars kan gebruiken dus zou ik alles moeten omrekenen naar ASCII codes met Ord().
Of heb ik het fout?
Je hebt het niet fout. Je moet inderdaad met ord werken, maar dat wordt vervolgens door de compiler weg-geoptimaliseerd.

Localhost, sweet localhost