Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Bourne Novato
Registrado: Quarta-Feira, 13 de Fevereiro de 2008 Mensagens: 26
|
Enviada: Sex Jul 15, 2011 5:31 pm Assunto: Problema com botões em tempo de execução |
|
|
Boa Tarde,
Pessoal esotu com um problema e não sei como resolve-lo.
Seguinte, na minha aplicação tenho 4 botões que crio em tempo de execução.
Button := TsSpeedButton.Create(Self);
with Button do begin
Parent := sScrollBox1;
height := 30;
caption := DM.ClientDataSet1.Fields.Fields[0].AsString;
Align := alTop;
SkinData.SkinSection := 'TOOLBUTTON';
visible:=true;
end;
Bem o problema é o seguinte, de tempo em tempo eu faço uma consulta no banco para verificar alguns valores e dependendo do valor que vir do banco tenho que desabilitar alguns desses botões.
Problema: Não sei como fazer o botão desabilitar, já que não sei como pegar ele.
Ex. TButton(button1).Visible := false;
Sei que isso funciona, pq o button1 existe,
Mais como fazer isso com botões que criei em tempo de execução.
Desde já agradeço,
Leonardo |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Jul 15, 2011 6:23 pm Assunto: |
|
|
Boa tarde
Uma alternativa seria utilizar a função FindComponent para procurar o botão pelo nome, mas seria necessário alterar o código para atribuir um nome diferente para cada botão, e de preferência alterar o parâmetro Self para sScrollBox1 para restringir a busca aos componentes cujo Owner é sScrollBox1 (sScrollBox1.FindComponent).
Outra alternativa seria varrer a propriedade Controls de sScrollBox1 até encontrar o botão, mas seria necessário alterar o código para atribuir um nome diferente para cada botão, ou ainda poderia ser atribuído algum código (tipo integer) a propriedade Tag do botão para poder identifica-lo.
Espero que seja útil.
_________________
Assinatura: Imobiliarias em Suzano |
|
Voltar ao Topo |
|
|
gilsonnrodrigues Moderador
Registrado: Quinta-Feira, 14 de Abril de 2005 Mensagens: 9009 Localização: Governador Valadares-MG
|
Enviada: Sex Jul 15, 2011 6:48 pm Assunto: |
|
|
pq ele tem q ser definido em tempo de execução?
se tiver q ser mesmo, vc pode definir um Campo private na classe pra receber ele
e dps vc usar |
|
Voltar ao Topo |
|
|
marcelocjr Aprendiz
Registrado: Sábado, 16 de Outubro de 2010 Mensagens: 148 Localização: Rio de Janeiro
|
Enviada: Dom Jul 17, 2011 2:54 pm Assunto: Resposta |
|
|
Amigo, boa tarde.
O que o Gilson falou é correto. Crie uma propriedade do tipo TButton e atribua a ela este componente. Assim, quando você for fazer algo naquele botão, basta fazer através da propriedade. _________________ Marcelo Couto Junior,
A vontade é necessária, o conhecimento é obrigatório.
Visitem meus vídeos: http://www.youtube.com/user/marcelocoutojunior?feature=mhsn |
|
Voltar ao Topo |
|
|
Bourne Novato
Registrado: Quarta-Feira, 13 de Fevereiro de 2008 Mensagens: 26
|
Enviada: Seg Jul 18, 2011 8:56 am Assunto: |
|
|
Olá Galera,
Primeiramente muito obrigado pelas respostas.
Bem eu estou criando em tempo de execução devido esses botões representarem acessos de alguns usuarios ao sistema, esses acessos serão definidos por outro usuario administrador, e com isso deixarei ele mais flexivel fazendo com que esse administrador possa criar o acesso com o nome que ele quiser e quantos ele quiser. 1, 2 ou 20...
Sendo dessa forma creio que a forma que o Imex falou será a melhor solução já que posso ter varios botões ao mesmo tempo.
Agora Gilson e Marcelo, não sei se consigo fazer isso que vcs falaram a varios botões ao mesmo tempo, se tiver como me informem.
Desde já agradeço, e irei testar, assim que tiver novidades informo.
Obrigado |
|
Voltar ao Topo |
|
|
|