Descobri qual checkbox foi clicado

05/12/2009

2

Tenho a seguinte situação:

Tenho um form com vários checkbox e criei uma procedure padrão para ser acessada pelos checkboxs, mas eu não quero criar vários eventos dos checkboxs só para chamar esta função.
A minha ideia é no evento onclick de um checkbox chamar este procedimento e enviar para ele o nome de qualquer um checkbox associado a este evento.
Responder

Posts

06/12/2009

Eduardo Gomes

Não consegui entender bem oque você quer  
Responder

07/12/2009

Wilson Junior

No evento OnClick, ou outro evento do seu componente, do seu componente é passado como parâmetro o objeto que está efetuando o evento "Sender: TObject", para saber qual o nome ou outra propriedade deste componente, coloque como TCheckBox(Sender).Nome_da_Propriedade.

Exemplos:
  TCheckBox(Sender).Name
  TCheckBox(Sender).Caption
  TCheckBox(Sender).Checked

Para funcionar desta maneira, deve ser vinculado este evento somente para os componentes TCheckBox, caso contrário você teria que testar se o componente é um TCheckBox ou não.
Em todos componentes, vincule sempre o mesmo procedimento, ou seja, você irá implementar somente uma vez para todos os eventos.

Exemplo na prática:
procedure Tform1.chkTesteClick(Sender: TObject);
begin
  if  TCheckBox(Sender).Checked then
      ShowMessage('Componente ' + TCheckBox(Sender).Caption + ' marcado')
  else
      ShowMessage('Componente ' + TCheckBox(Sender).Caption + ' desmarcado')
  ;
end;

Espero ter ajudado.
Responder

07/12/2009

Jair N.

Bom Dia, você pode utilizar este tipo:
uma relação dos nomes dos checkbox
if (Tcheckbox(Sender).Name = 'ckbAtual') Then
begin
end else
if (Tcheckbox(Sender).Name = 'ckbOutro') Then
begin
end;

Bem existem outros meios com certeza...

Responder
Muito obrigado Wilson.
Era isto mesmo que eu queria.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira