Fórum Componente receber função #418669
18/06/2012
0
estou com a seguinte dúvida:
Se eu criar alguns botões dinamicamente, como faço para criar o OnClick dele?
Luiz Junior
Curtir tópico
+ 0Posts
18/06/2012
Marco Salles
Vc tem que escrever uma procedure com os mesmo aprametros deste evento
depois atribuir o evento onclick deste botão a esta procedure
Tipo isto
SeuButton.OnClick:=ProcedureDefinidaPorVoce;
procedure ProcedureDefinidaPorVoce(Sender: TObject);
begin
Instruçoes utulize o Sender se necessitar
end;
Gostei + 0
18/06/2012
Luiz Junior
eu não detalhei bem a minha pergunta.
Na verdade eu queria é fazer o seguinte:
criar vários Panel, um embaixo do outro, exemplo:
Panels:
A
B
C
D
Quando eu der dois click em cada panel terá que aparecer uma mensagem A para o panel A, B para o panel B.
O que eu quero é poder identificar o compnente criado(Panel).
Gostei + 0
18/06/2012
Marco Salles
Mas de nome a este panels criados dinamicamente e os ecesse com a propriedade findComponent do Proprietário
No caso deve ser o Formulario
Gostei + 0
18/06/2012
Luiz Junior
Em um Form vou criar vários panels conforme o recordcount de clientedataset, digamos que no cliente tenha João, Maria e Paula.
Será criado 3 Panel um abaixo do outro
João
Maria
Paula
Quando eu der doi click no panel Maria, tem que mostrar digamos em um edit algum dado da maria e se eu der duplo clique no panel que tem paula tem que mostrar os dados de Paula.
Não sei como identificar que o duplo click em Maria tem que buscar os dados de maria, ele esta fazendo só o de paula.
Gostei + 0
18/06/2012
Gustavo Bretas
No caso da criação dos Panels dinâmicamente, vc terá que vincular alguma informação para encontrar o registro no DataSet. No exemplo de cliente que vc postou, no evento que vc cria os Panels, coloque o código do cliente na propriedade Tag, crie uma procedure exatamente como no exemplo do Marco Antonio, dentro da procedure vc pode fazer como no exmplo abaixo.
SeuDataSet.First;
if SeuDataSet.Locate(COD_CLIENTE, TPanel(Sender).Tag, []) then
begin
ShowMessage(SeuDataSet.FieldByName(NOME_CLIENTE).AsString);
// ou qualquer outra informação do DataSet
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)