Fórum SetFocus Está Dando Trabalho #448406

11/07/2013

0

Pessoal, boa noite!!!

Abaixo o codigo de validação de data, até ai tudo bem, está validando tudo certinho, só que no form desse cadastro, possui, os botões, Incluir,Gravar,Alterar,Cancelar,Excluir.Quando eu clico no botão Incluir, ele abre os edit para digitação, mas se eu clicar no botão Cancelar ele não cancela, fica validando a data em branco, trazendo a mensagem do Mess(Frm_Cad_Funcionarios.Handle,''Verifique...'',mb_iconinformation or mb_ok);.Se eu tirar o Msk_Data_Admissao.SetFocus;Ele cancela normal.Mais eu preciso que o foco demostre que está em branco mais se eu clicar no botão cancelar, funcione como tem que funcionar.Alguem ajudaaaaaaaaaaa????


procedure TFrm_Cad_Funcionarios.Msk_Data_AdmissaoExit(Sender: TObject);
VAR data : TDate;
begin
try
data := StrToDate(Msk_Data_Admissao.Text);
except
begin
Mess(Frm_Cad_Funcionarios.Handle,''Verifique...'',mb_iconinformation or mb_ok);
Msk_Data_Admissao.SelectAll;
Msk_Data_Admissao.SetFocus;
Abort;
end;
end;
Bruno Henrique

Bruno Henrique

Responder

Posts

11/07/2013

Marco Salles

POE ...

antes de cair no try teste se o foco esta indo para o Botão cancelar ... se sim , sai

[]sds
Responder

Gostei + 0

11/07/2013

Bruno Henrique

Não Deu Certo!!!Já to pirando.Se eu deixar o campo em branco, ele exibe a mensagem de Verifique e retorna o foco para o campo, agora se eu digitar uma data errada exemplo 10/15/2013 ele não exibe a mensagem,ele foca no campo, mais eu clico no cancelar ai ele cancela.....Ajudaa!!!
Responder

Gostei + 0

11/07/2013

Marco Salles

Mas quando clica no cancelar não [e para ele cancelar mesmo ?????????
Responder

Gostei + 0

11/07/2013

Bruno Henrique

Sim, é pra cancelar, quando eu clico em cancelar é pra cancelar a inclusão.Ele teria que deixar como false todos os edits e ativar os botões incluir, pesquisar, e alterar como true.Mas quando eu clico no botão cancelar, ele intende que o campo data é invalido por estar em branco fica me dando a mensagem do Mess(Frm_Cad_Funcionarios.Handle,'Verifique...',mb_iconinformation or mb_ok);


Esse é o meu botão cancelar

procedure TFrm_Cad_Funcionarios.LimpaCampos;
var i:Integer;
Begin
For i:=0 To (ComponentCount - 1) Do
If Components[i] Is TCustomEdit Then (Components[i] As TCustomEdit).Clear;
Ads_Cad_Funcionarios.Close;
Edt_Comissao.Text:=' 0,00';
f_operacao:='I';
Ads_Cad_Funcionarios.Close;
Ads_Cad_Funcionarios.CommandText:='Select * from Cad_Funcionarios order by nome';
Ads_Cad_Funcionarios.Open;
end;
Responder

Gostei + 0

11/07/2013

Marco Salles

então amigo , reveja o que eu lhe disse no início e vc disse que não deu certo


POE ...

antes de cair no try teste se o foco esta indo para o Botão cancelar ... se sim , sai

[]sds


como vc fez este teste ???

onde vc fez este teste ???

qual a instrução que vc utilizou para implementar este teste ???


[]sds
Responder

Gostei + 0

11/07/2013

Bruno Henrique

Amigão

Depois do begin eu coloquei Btn_Cancelar.SetFocus;

procedure TFrm_Cad_Funcionarios.Msk_Data_AdmissaoExit(Sender: TObject);
VAR data : TDate;
begin
Btn_Cancelar.SetFocus;
try
data := StrToDate(Msk_Data_Admissao.Text);
except
begin
Mess(Frm_Cad_Funcionarios.Handle,'Verifique...',mb_iconinformation or mb_ok);
//MessageDLG('Verifique!!!',mtInformation,[mbok],1);
Msk_Data_Admissao.SelectAll;
Msk_Data_Admissao.SetFocus;
Abort;

end;
end;
Responder

Gostei + 0

11/07/2013

Marco Salles

não

procedure TFrm_Cad_Funcionarios.Msk_Data_AdmissaoExit(Sender: TObject);
VAR data : TDate;
begin
if Btn_Cancelar.focused then
 exit;

//faça o que vc tem que fazer se não for cancelar
end;
Responder

Gostei + 0

11/07/2013

Bruno Henrique

Amigãooo deu certoo!!!Obrigado!!!
Abraçãoaooo

RESOLVIDO
Responder

Gostei + 0

12/07/2013

José

Obrigado Bruno por seu retorno. Já que o problema foi solucionada estou dando este tópico por concluído.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar