Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
IsNumeric - VFP analogue?
Message
De
26/12/1999 23:57:33
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00307922
Message ID:
00308697
Vues:
36
Here is an example with an editbox. I'll leave it up to you to solve the problem of the caret (text insertion point indicator) shifting one character to the right for every line after line 1.
oForm = createobject("TestForm")
oForm.Visible = .t.
read events

define class TestForm as form
  add object edtValidated as ValidatedEditbox
  procedure QueryUnload
    clear events
  endproc
enddefine

define class ZipValidator as custom

  DigitCount = 5
	
  function init 
    lparameters tnDigitCount
		
    if vartype( tnDigitCount ) = 'N'
      this.DigitCount = tnDigitCount
    endif
  endfunc

  function ValidateString
    lparameters tcString
		
    local array laString[1]
    local i, lnLineCount
		
    if vartype( tcString ) = 'C'
      lnLineCount = alines(laString, tcString, .t.)
      tcString = ""
      for i = 1 to lnLineCount
        if !empty(laString[i])
          laString[i] = transform(int(val(laString[i])))
          * padr() is used because you are formatting ZIP Codes
          laString[i] = padr(laString[i], this.DigitCount, '0')
          tcString = tcString + laString[i] + chr(13)
        endif
      endfor
    endif

    return tcString

  endfunc

enddefine

define class ValidatedEditbox as editbox

  * default validator, for some reason createobject() won't work here
  Validator = null
	
  function init 
    lparameters toValidator
		
    * we are using deligation for the validator
    if vartype( toValidator ) = 'O'
      this.Validator = toValidator
    else
      this.Validator = createobject("ZipValidator")
    endif
  endfunc

  procedure InteractiveChange
    this.Value = this.Validator.ValidateString(this.Value)
  endproc
	
enddefine
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform