ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Problema com botões em tempo de execução

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Bourne
Novato
Novato


Registrado: Quarta-Feira, 13 de Fevereiro de 2008
Mensagens: 26

MensagemEnviada: Sex Jul 15, 2011 5:31 pm    Assunto: Problema com botões em tempo de execução Responder com Citaçã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
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Jul 15, 2011 6:23 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Sex Jul 15, 2011 6:48 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
marcelocjr
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Outubro de 2010
Mensagens: 148
Localização: Rio de Janeiro

MensagemEnviada: Dom Jul 17, 2011 2:54 pm    Assunto: Resposta Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
Bourne
Novato
Novato


Registrado: Quarta-Feira, 13 de Fevereiro de 2008
Mensagens: 26

MensagemEnviada: Seg Jul 18, 2011 8:56 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB