Cancelar propagação de evento click Herança

Delphi

19/08/2012

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
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

Andre Faria

Curtidas 0

Respostas

Andre Faria

Andre Faria

19/08/2012

Blz galera já achei.
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

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;

GOSTEI 0
Andre Faria

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.
GOSTEI 0
Marco Salles

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)

GOSTEI 0
Andre Faria

Andre Faria

19/08/2012

Rsrs
Blz, obrigado.
Pode colocar como respondido !

Abraço
GOSTEI 0
POSTAR