Descobri qual checkbox foi clicado
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.
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.
Leandro Carvalho
Curtidas 0
Respostas
Eduardo Gomes
05/12/2009
Não consegui entender bem oque você quer
GOSTEI 0
Wilson Junior
05/12/2009
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.
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.
GOSTEI 0
Jair N.
05/12/2009
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...
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...
GOSTEI 0
Leandro Carvalho
05/12/2009
Muito obrigado Wilson.
Era isto mesmo que eu queria.
Era isto mesmo que eu queria.
GOSTEI 0