Problemas com DBedit mascarados

Delphi

26/06/2006

Olá pessoal

Bom coloquei um campo chamado DATA e CPF em um sistema e não quero que a pessoa saia do campo sem digitar os seus dados então usei o seguinte comando no ONEXIT.
IF data.date = ´ ´ Then
Begin
Showmessage (´Digite uma data para continuar´);
Data.SetFocus;
End;

Fiz assim no DBDATA e no DBCPF Só que não esta funcionando essa linha de comando que eu estou usando acho que é por causa que eu formatei os campos como um editmask para ficar mais apresentaveis ao usuario
o campo data aparece para o usuario assim:dd/mm/aaaa e o campo CPF esta com o seguinte formato:999.999.999-99;1; bom como eu posso fazer com que de a mensagem sem ter que mexer nas mascaras.

Valeu :-)


Alecsandro Moura

Alecsandro Moura

Curtidas 0

Respostas

Micheus

Micheus

26/06/2006

se vc não necessitar gravar os dados com a máscara, basta trocar o [b:7832369193]1[/b:7832369193] por [b:7832369193]0[/b:7832369193] na definição da máscara.

Caso contrário, utilize uma função para remover os caracteres indesejados e validar seu campo:
type
TCharSet = set of char;

function FilterChars(Source :String; Filter :TCharSet) :String;
var
Idx :Integer;
begin
for Idx := Length(Source) downto 1 do
if (Source[Idx] in Filter) then
Delete(Source, Idx, 1);
Result := Source;
end;

no programa:
IF FilterChars(DBData.Text, [´/´, ´ ´]) = ´´ Then

IF FilterChars(DBCPF.Text, [´/´, ´ ´, ´.´, ´-´]) = ´´ Then


GOSTEI 0
Micheus

Micheus

26/06/2006

se vc não necessitar gravar os dados com a máscara, basta trocar o [b:c6e2e532be]1[/b:c6e2e532be] por [b:c6e2e532be]0[/b:c6e2e532be] na definição da máscara.

Caso contrário, utilize uma função para remover os caracteres indesejados e validar seu campo:
type
TCharSet = set of char;

function FilterChars(Source :String; Filter :TCharSet) :String;
var
Idx :Integer;
begin
for Idx := Length(Source) downto 1 do
if (Source[Idx] in Filter) then
Delete(Source, Idx, 1);
Result := Source;
end;

no programa:
IF FilterChars(DBData.Text, [´/´, ´ ´]) = ´´ Then

IF FilterChars(DBCPF.Text, [´/´, ´ ´, ´.´, ´-´]) = ´´ Then


GOSTEI 0
Micheus

Micheus

26/06/2006

se vc não necessitar gravar os dados com a máscara, basta trocar o [b:3d40d11729]1[/b:3d40d11729] por [b:3d40d11729]0[/b:3d40d11729] na definição da máscara.

Caso contrário, utilize uma função para remover os caracteres indesejados e validar seu campo:
type
TCharSet = set of char;

function FilterChars(Source :String; Filter :TCharSet) :String;
var
Idx :Integer;
begin
for Idx := Length(Source) downto 1 do
if (Source[Idx] in Filter) then
Delete(Source, Idx, 1);
Result := Source;
end;

no programa:
IF FilterChars(DBData.Text, [´/´, ´ ´]) = ´´ Then

IF FilterChars(DBCPF.Text, [´/´, ´ ´, ´.´, ´-´]) = ´´ Then


GOSTEI 0
Micheus

Micheus

26/06/2006

Desculpem pela repetição. o navegador estava dando time-out e dei alguns refresh. Parece que acabou postando repetidas vezes.


GOSTEI 0
POSTAR