Fórum Cancelar propagação de evento click Herança #421981

19/08/2012

0

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

Responder

Posts

19/08/2012

Andre Faria

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
Responder

Gostei + 0

19/08/2012

Marco Salles

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;

Responder

Gostei + 0

19/08/2012

Andre Faria

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

Gostei + 0

19/08/2012

Marco Salles

Ok..Mas é importante proteger o bloco com o Try except

Quanto a fechar o tópico , geralmente nos moderadores que colocamos o Resolvido (Infelismente)

Responder

Gostei + 0

19/08/2012

Andre Faria

Rsrs
Blz, obrigado.
Pode colocar como respondido !

Abraço
Responder

Gostei + 0

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

Aceitar