tinycobol/test.code/00_FernandoWuthstrack/tcl/entvalid.tcl

42 lines
774 B
Tcl

#!/bin/sh
#\
exec wish "$0" "$@"
proc entFmt {format buf c ins inv} {
puts "entFmt: $format $buf $c $ins $inv"
return 1
set r 1
set bmax [expr [string length $buf]-1]
if {$ins} {
### insert a char
set f [string index $format $bmax]
for {set i $bmax} {$i < 1000} {incr i} {
upvar $inv new
set new $buf
if {[string first $f "zZ9aAxX"] > 0} {
set new [string range $buf 0 end-1]$f
set r 0
}
}
} else {
### delete a char
}
puts "return: $r"
return $r
}
### exemplo de uso
label .l4 -text "A phone number:\
\n(99) 9999-9999"
entry .e4 -vcmd {entFmt {(99) 9999-9999} %P %S %d Ve4} \
-validate key -invcmd {
%W delete 0 end
%W insert 0 $Ve4
after idle %W configure -validate key
}
pack .l4 .e4