Se for assim, talvez melhor apenas mexer no READ
READ SAVE
// Usa a GetList e/ou faz uma cópia
GetList := {} // ou CLEAR GETS
Mesmo assim, não sei se fica guardada a posição de finalização na GetList, vai ter que testar.
Uma vez que é pra aplicar seu dicionário, talvez seja interessante criar sua própria GetList, e ampliar recursos.
Por exemplo, a partir da GetList, fazer uma validação geral antes de finalizar.
Seria interessante, dividir o VALID em dois ou três: um pra validação, um pra formatação de campo, e um outro eventual que não tenha a ver com os anteriores. Meio parecido com o que existe, ou deveria existir, em GUI - OnChange(), OnGetFocus(), OnLostFocus(), Validate()
Como já comentei por aqui, no VB eu usava:
OnGetFocus() - por exemplo no CPF/CNPJ ou Date, pra retirar a formatação, e pro usuário digitar sem se preocupar com pontuação
OnLostFocus() - pra formatar, colocar pontuação do CPF/CNPJ ou data
Validate() - pra validação propriamente dita, até com preenchimento de um campo de descrição por exemplo, e principalmente pra validar todos os campos de uma vez no final.
Veja aÃ, conforme o que pretende fazer.