Cancelar propagação de evento click Herança
Fala galera, boa noite,
procurei em tudo que é lugar e realmente não encontrei.
segue minha duvida.
eu tenho um form base
FrmBase
Dele eu tiro todos os meus forms por henrança, até aí blz.
Só que agora eu tenho um método que ficará nele.
E quando o usuário clicar no botão de OK, eu faço a verificação se todos os campos obrigatórios foram preenchidos. Caso alguns desses campos não esteja preenchido eu quero cancelar o click para que ele não vá até o form filho.
Ex;
Form Pai
Form Filho
Desde já agradeço
procurei em tudo que é lugar e realmente não encontrei.
segue minha duvida.
eu tenho um form base
FrmBase
Dele eu tiro todos os meus forms por henrança, até aí blz.
Só que agora eu tenho um método que ficará nele.
E quando o usuário clicar no botão de OK, eu faço a verificação se todos os campos obrigatórios foram preenchidos. Caso alguns desses campos não esteja preenchido eu quero cancelar o click para que ele não vá até o form filho.
Ex;
Form Pai
procedure TFrmOpcoes.BtnConfirmarClick(Sender: TObject); begin inherited; if not ValidaCamposObrigatorios(Self) Then //Eu não sei o que colocar aqui para cancelar a propagação do evento; end;
Form Filho
Procedure TfrmGerarRemessa.BtnConfirmarClick(Sender: TObject); Begin //Aqui ele chama o pai, caso o valida campos retorne false, eu não queria que ele chegasse até os (Outros comandos) //Sem ter que criar variavel de controle Inherited; //Outro comandos End;
Desde já agradeço
Andre Faria
Curtidas 0
Respostas
Andre Faria
19/08/2012
Blz galera já achei.
Compartilhar aqui o conhecimento
Assim o programa aborta o click, e ele não é propagado para os form's filhos.
Abraço
Compartilhar aqui o conhecimento
if not ValidaCamposObrigatorios(Self) Then
Abort;
Assim o programa aborta o click, e ele não é propagado para os form's filhos.
Abraço
GOSTEI 0
Marco Salles
19/08/2012
acho que vc deve colocar um abort
procedure TFrmOpcoes.BtnConfirmarClick(Sender: TObject);
begin
inherited;
if not ValidaCamposObrigatorios(Self) Then
//
abort;
end;
Acho que vc pode verificar o com o try except
Procedure TfrmGerarRemessa.BtnConfirmarClick(Sender: TObject);
Begin
try
//Aqui ele chama o pai, caso o valida campos retorne false, eu não queria que ele chegasse até os (Outros comandos)
//Sem ter que criar variavel de controle
Inherited;
//Outro comandos
except
showmessage('erro');
end;
End;
procedure TFrmOpcoes.BtnConfirmarClick(Sender: TObject);
begin
inherited;
if not ValidaCamposObrigatorios(Self) Then
//
abort;
end;
Acho que vc pode verificar o com o try except
Procedure TfrmGerarRemessa.BtnConfirmarClick(Sender: TObject);
Begin
try
//Aqui ele chama o pai, caso o valida campos retorne false, eu não queria que ele chegasse até os (Outros comandos)
//Sem ter que criar variavel de controle
Inherited;
//Outro comandos
except
showmessage('erro');
end;
End;
GOSTEI 0
Andre Faria
19/08/2012
Valeu marco, eu tinha achado a sulução e colocado logo acima do seu port.
Muito obrigado pela agilidade da resposta.
Agora vai mais uma pergunta.
Como eu faço para fechar o tópico ? (Colocar como respondido)
Não achei nenhum lugar para fazer isso.
Muito obrigado pela agilidade da resposta.
Agora vai mais uma pergunta.
Como eu faço para fechar o tópico ? (Colocar como respondido)
Não achei nenhum lugar para fazer isso.
GOSTEI 0
Marco Salles
19/08/2012
Ok..Mas é importante proteger o bloco com o Try except
Quanto a fechar o tópico , geralmente nos moderadores que colocamos o Resolvido (Infelismente)
Quanto a fechar o tópico , geralmente nos moderadores que colocamos o Resolvido (Infelismente)
GOSTEI 0
Andre Faria
19/08/2012
Rsrs
Blz, obrigado.
Pode colocar como respondido !
Abraço
Blz, obrigado.
Pode colocar como respondido !
Abraço
GOSTEI 0