uso do botao speedbutton
caros amigos
preciso de uma ajuda, acho que e simples mas não sei como fazer, o caso e o seguinte :
tenho um sistema que fiz , e nele coloquei 55 speedbutton, cada um numerado, na composição do nome do componente usei a seguinte nomenclatura Spb_1, Spb_2, Spb_3 e assim sucessivamente ate chegar ao botao 55.
minha duvida e o seguinte como pos passar o numero do botao para completar seu nome , ou seja quero tornar o botao 40 por exemplo invisivel queria fazer o seguinte Spb_ + numero + proprieddae ou seja quero so informar o numero do botao na descricao o Spb_ seria padrão e a propriedade tambem. acho que deu para me explicar, eu so passaria o numero desejado e o sistema completaria o comando ficando da seguinte forma Spb_20.visible:= False, hoje eu uso o case e conforme o numero indicado ele usaria o comando certo, mas pense soa 55 botao para tornar invisivel e 55 para tornar visivel. atrazes da opçaõ que solicito so vou ter uma linha, ou melhor 2, so ficando para er passado o numero para completar o comando.
ajudem-me acho que deve ser facil, e confeço nao ter tentado fazer ainda uma tentativa para resolver.
pensei a seguinte forma 'Spb_'+Variavel+'.visible:= False', mas isso seria um texto como transformaria em comando
complicado
preciso de uma ajuda, acho que e simples mas não sei como fazer, o caso e o seguinte :
tenho um sistema que fiz , e nele coloquei 55 speedbutton, cada um numerado, na composição do nome do componente usei a seguinte nomenclatura Spb_1, Spb_2, Spb_3 e assim sucessivamente ate chegar ao botao 55.
minha duvida e o seguinte como pos passar o numero do botao para completar seu nome , ou seja quero tornar o botao 40 por exemplo invisivel queria fazer o seguinte Spb_ + numero + proprieddae ou seja quero so informar o numero do botao na descricao o Spb_ seria padrão e a propriedade tambem. acho que deu para me explicar, eu so passaria o numero desejado e o sistema completaria o comando ficando da seguinte forma Spb_20.visible:= False, hoje eu uso o case e conforme o numero indicado ele usaria o comando certo, mas pense soa 55 botao para tornar invisivel e 55 para tornar visivel. atrazes da opçaõ que solicito so vou ter uma linha, ou melhor 2, so ficando para er passado o numero para completar o comando.
ajudem-me acho que deve ser facil, e confeço nao ter tentado fazer ainda uma tentativa para resolver.
pensei a seguinte forma 'Spb_'+Variavel+'.visible:= False', mas isso seria um texto como transformaria em comando
complicado
Edson Melo
Curtidas 0
Respostas
William
28/09/2012
caros amigos
preciso de uma ajuda, acho que e simples mas não sei como fazer, o caso e o seguinte :
tenho um sistema que fiz , e nele coloquei 55 speedbutton, cada um numerado, na composição do nome do componente usei a seguinte nomenclatura Spb_1, Spb_2, Spb_3 e assim sucessivamente ate chegar ao botao 55.
minha duvida e o seguinte como pos passar o numero do botao para completar seu nome , ou seja quero tornar o botao 40 por exemplo invisivel queria fazer o seguinte Spb_ + numero + proprieddae ou seja quero so informar o numero do botao na descricao o Spb_ seria padrão e a propriedade tambem. acho que deu para me explicar, eu so passaria o numero desejado e o sistema completaria o comando ficando da seguinte forma Spb_20.visible:= False, hoje eu uso o case e conforme o numero indicado ele usaria o comando certo, mas pense soa 55 botao para tornar invisivel e 55 para tornar visivel. atrazes da opçaõ que solicito so vou ter uma linha, ou melhor 2, so ficando para er passado o numero para completar o comando.
ajudem-me acho que deve ser facil, e confeço nao ter tentado fazer ainda uma tentativa para resolver.
pensei a seguinte forma 'Spb_'+Variavel+'.visible:= False', mas isso seria um texto como transformaria em comando
complicado
preciso de uma ajuda, acho que e simples mas não sei como fazer, o caso e o seguinte :
tenho um sistema que fiz , e nele coloquei 55 speedbutton, cada um numerado, na composição do nome do componente usei a seguinte nomenclatura Spb_1, Spb_2, Spb_3 e assim sucessivamente ate chegar ao botao 55.
minha duvida e o seguinte como pos passar o numero do botao para completar seu nome , ou seja quero tornar o botao 40 por exemplo invisivel queria fazer o seguinte Spb_ + numero + proprieddae ou seja quero so informar o numero do botao na descricao o Spb_ seria padrão e a propriedade tambem. acho que deu para me explicar, eu so passaria o numero desejado e o sistema completaria o comando ficando da seguinte forma Spb_20.visible:= False, hoje eu uso o case e conforme o numero indicado ele usaria o comando certo, mas pense soa 55 botao para tornar invisivel e 55 para tornar visivel. atrazes da opçaõ que solicito so vou ter uma linha, ou melhor 2, so ficando para er passado o numero para completar o comando.
ajudem-me acho que deve ser facil, e confeço nao ter tentado fazer ainda uma tentativa para resolver.
pensei a seguinte forma 'Spb_'+Variavel+'.visible:= False', mas isso seria um texto como transformaria em comando
complicado
Olá Edson, bom acho q vc precisa de um loop para percorrer esses botões, segue um exemplo:
procedure TForm1.btnLimpaCamposClick(Sender: TObject);
var
i: Integer;
begin
//Contador que verifica todos os componentes do Form
for i := 0 to ComponentCount -1 do
begin
//Verifica se o objeto é do tipo TSpeedButton
if (Components[i] is TSpeedButton) then
//Verifica o nome do TSpeedButton
if (Components[i] as TSpeedButton).Name = NomedoBotão then
(Components[i] as TSpeedButton).Visible = false;
end;
end;
GOSTEI 0
William
28/09/2012
caros amigos
preciso de uma ajuda, acho que e simples mas não sei como fazer, o caso e o seguinte :
tenho um sistema que fiz , e nele coloquei 55 speedbutton, cada um numerado, na composição do nome do componente usei a seguinte nomenclatura Spb_1, Spb_2, Spb_3 e assim sucessivamente ate chegar ao botao 55.
minha duvida e o seguinte como pos passar o numero do botao para completar seu nome , ou seja quero tornar o botao 40 por exemplo invisivel queria fazer o seguinte Spb_ + numero + proprieddae ou seja quero so informar o numero do botao na descricao o Spb_ seria padrão e a propriedade tambem. acho que deu para me explicar, eu so passaria o numero desejado e o sistema completaria o comando ficando da seguinte forma Spb_20.visible:= False, hoje eu uso o case e conforme o numero indicado ele usaria o comando certo, mas pense soa 55 botao para tornar invisivel e 55 para tornar visivel. atrazes da opçaõ que solicito so vou ter uma linha, ou melhor 2, so ficando para er passado o numero para completar o comando.
ajudem-me acho que deve ser facil, e confeço nao ter tentado fazer ainda uma tentativa para resolver.
pensei a seguinte forma 'Spb_'+Variavel+'.visible:= False', mas isso seria um texto como transformaria em comando
complicado
preciso de uma ajuda, acho que e simples mas não sei como fazer, o caso e o seguinte :
tenho um sistema que fiz , e nele coloquei 55 speedbutton, cada um numerado, na composição do nome do componente usei a seguinte nomenclatura Spb_1, Spb_2, Spb_3 e assim sucessivamente ate chegar ao botao 55.
minha duvida e o seguinte como pos passar o numero do botao para completar seu nome , ou seja quero tornar o botao 40 por exemplo invisivel queria fazer o seguinte Spb_ + numero + proprieddae ou seja quero so informar o numero do botao na descricao o Spb_ seria padrão e a propriedade tambem. acho que deu para me explicar, eu so passaria o numero desejado e o sistema completaria o comando ficando da seguinte forma Spb_20.visible:= False, hoje eu uso o case e conforme o numero indicado ele usaria o comando certo, mas pense soa 55 botao para tornar invisivel e 55 para tornar visivel. atrazes da opçaõ que solicito so vou ter uma linha, ou melhor 2, so ficando para er passado o numero para completar o comando.
ajudem-me acho que deve ser facil, e confeço nao ter tentado fazer ainda uma tentativa para resolver.
pensei a seguinte forma 'Spb_'+Variavel+'.visible:= False', mas isso seria um texto como transformaria em comando
complicado
Olá Edson, bom acho q vc precisa de um loop para percorrer esses botões, segue um exemplo:
procedure TForm1.btnLimpaCamposClick(Sender: TObject);
var
i: Integer;
begin
//Contador que verifica todos os componentes do Form
for i := 0 to ComponentCount -1 do
begin
//Verifica se o objeto é do tipo TSpeedButton
if (Components[i] is TSpeedButton) then
//Verifica o nome do TSpeedButton
if (Components[i] as TSpeedButton).Name = NomedoBotão then
(Components[i] as TSpeedButton).Visible = false;
end;
end;
GOSTEI 0
William
28/09/2012
Desculpe Edson a postagem acabou saindo duplicada e com informações desnecessárias, caso não seja esse o seu problema é só avisar que bolamos outra solução.
GOSTEI 0
Edson Melo
28/09/2012
meu caro amigo, nao e bem isso so gostaria de passar o numero por referencia.
ja li muito a este respeito quando eu programava em clipper, mas me esqueci e tambem tudo mudor o laço ficaria coomo uso hoje seria trocar 6 por meia duzia
mas não vou me desesperar sei que conseguiremos chegar a um bom resultado
ja li muito a este respeito quando eu programava em clipper, mas me esqueci e tambem tudo mudor o laço ficaria coomo uso hoje seria trocar 6 por meia duzia
mas não vou me desesperar sei que conseguiremos chegar a um bom resultado
GOSTEI 0
Marcos Iwazaki
28/09/2012
Ola amigo.
vc pode fazer assim
SeuForm.FindComponent(NomeDoComponenteEmString)
esta function retorn um TComponent
então p ter acesso as prop do speedbutton
faça assim:
if SeuForm.FindComponent(NomeDoComponenteEmString) is TSpeedButton then
TSpeedButton(SeuForm.FindComponent(NomeDoComponenteEmString)).visible
espero ter ajudado.
vc pode fazer assim
SeuForm.FindComponent(NomeDoComponenteEmString)
esta function retorn um TComponent
então p ter acesso as prop do speedbutton
faça assim:
if SeuForm.FindComponent(NomeDoComponenteEmString) is TSpeedButton then
TSpeedButton(SeuForm.FindComponent(NomeDoComponenteEmString)).visible
espero ter ajudado.
meu caro amigo, nao e bem isso so gostaria de passar o numero por referencia.
ja li muito a este respeito quando eu programava em clipper, mas me esqueci e tambem tudo mudor o laço ficaria coomo uso hoje seria trocar 6 por meia duzia
mas não vou me desesperar sei que conseguiremos chegar a um bom resultado
ja li muito a este respeito quando eu programava em clipper, mas me esqueci e tambem tudo mudor o laço ficaria coomo uso hoje seria trocar 6 por meia duzia
mas não vou me desesperar sei que conseguiremos chegar a um bom resultado
GOSTEI 0
Edson Melo
28/09/2012
ola amigos voces nao entenderam, do geito que voces me dizem , acho melhor continuar com minha opção que é assim
case StrToInt(Label3.caption) do
1 : Spb_1.visible:= False
2 : Spb_2.Visible:= False
3 : Spb_3.Visible:= False
4 : Spb_4.Visible:= False
5 : Spb_5.Visible:= False
6 : Spb_6.Visible:= False
7 : Spb_7.Visible:= False
8 : Spb_8.Visible:= False
9 : Spb_9.Visible:= False
..... e assim por diante ate chegar ao 55
so passo o numero do botao e o case se encarrega de executar o comando. so que são 55 botoes, esse case fica enorme e são 2 case um habilitando e outro desabilitando.
sei que tem como fazer do jeito que eu imagino. elpassaria o numero e o sistema completaria o comando Spb_ .Visible:= False; onde o espaço vazio seria completado com o numero e o comando seria executado
case StrToInt(Label3.caption) do
1 : Spb_1.visible:= False
2 : Spb_2.Visible:= False
3 : Spb_3.Visible:= False
4 : Spb_4.Visible:= False
5 : Spb_5.Visible:= False
6 : Spb_6.Visible:= False
7 : Spb_7.Visible:= False
8 : Spb_8.Visible:= False
9 : Spb_9.Visible:= False
..... e assim por diante ate chegar ao 55
so passo o numero do botao e o case se encarrega de executar o comando. so que são 55 botoes, esse case fica enorme e são 2 case um habilitando e outro desabilitando.
sei que tem como fazer do jeito que eu imagino. elpassaria o numero e o sistema completaria o comando Spb_ .Visible:= False; onde o espaço vazio seria completado com o numero e o comando seria executado
GOSTEI 0
Edson Melo
28/09/2012
meu caro amigo socram, vendo melhor seu exemplo acho que talves funcione, vou analizar melhor
pode ser que resolva meu problema, pois monto o nome do componente como se fosse um texto e o comando fax a substituição
depois te respondo o que achei
obrigado
mas mesmo assim continuo a busca de uma solução mais simples, agora me correu uma ideia , cada componente tem um indice, e se eu passe o indice no comando ......componente.visible:= False. o numero do indice deveria ser igualao numero do botao para que essa minha ideia funcionase, so que não sei coomo por essa ideia em pratica.
ai sim e que chegaria o mais perto possivel do que eu quero.
me ajudem pr favor , quem souber executar isto que pensei
pode ser que resolva meu problema, pois monto o nome do componente como se fosse um texto e o comando fax a substituição
depois te respondo o que achei
obrigado
mas mesmo assim continuo a busca de uma solução mais simples, agora me correu uma ideia , cada componente tem um indice, e se eu passe o indice no comando ......componente.visible:= False. o numero do indice deveria ser igualao numero do botao para que essa minha ideia funcionase, so que não sei coomo por essa ideia em pratica.
ai sim e que chegaria o mais perto possivel do que eu quero.
me ajudem pr favor , quem souber executar isto que pensei
GOSTEI 0
Marcos Iwazaki
28/09/2012
case StrToInt(Label3.caption) do
1 : Spb_1.visible:= False
2 : Spb_2.Visible:= False
3 : Spb_3.Visible:= False
4 : Spb_4.Visible:= False
5 : Spb_5.Visible:= False
6 : Spb_6.Visible:= False
7 : Spb_7.Visible:= False
8 : Spb_8.Visible:= False
9 : Spb_9.Visible:= False
vou exemplificar melhor o que eu disse...
talvez a sintaxe esteja errada pois estou sem o delphi aqui
for I:=0 to MeuForm.componentcount -1 do begin
if meuForm.components[i] is TSpeedButton then begin
if Assinged (TSpeedButton(meuForm.components[i])) then begin
if TSpeedButton(meuForm.components[i]).name = 'Spb_'+Label3.caption //aqui vc formata o nome certinho
TSpeedButton(meuForm.components[i]).visible := false;
break; //para sair do for, pois ja achou o q precisava. Evita gastar processamento sem necessidade.
end;
end;
end; //for
se não esqueci de nada deve ser isso..
1 : Spb_1.visible:= False
2 : Spb_2.Visible:= False
3 : Spb_3.Visible:= False
4 : Spb_4.Visible:= False
5 : Spb_5.Visible:= False
6 : Spb_6.Visible:= False
7 : Spb_7.Visible:= False
8 : Spb_8.Visible:= False
9 : Spb_9.Visible:= False
vou exemplificar melhor o que eu disse...
talvez a sintaxe esteja errada pois estou sem o delphi aqui
for I:=0 to MeuForm.componentcount -1 do begin
if meuForm.components[i] is TSpeedButton then begin
if Assinged (TSpeedButton(meuForm.components[i])) then begin
if TSpeedButton(meuForm.components[i]).name = 'Spb_'+Label3.caption //aqui vc formata o nome certinho
TSpeedButton(meuForm.components[i]).visible := false;
break; //para sair do for, pois ja achou o q precisava. Evita gastar processamento sem necessidade.
end;
end;
end; //for
se não esqueci de nada deve ser isso..
meu caro amigo socram, vendo melhor seu exemplo acho que talves funcione, vou analizar melhor
pode ser que resolva meu problema, pois monto o nome do componente como se fosse um texto e o comando fax a substituição
depois te respondo o que achei
obrigado
mas mesmo assim continuo a busca de uma solução mais simples, agora me correu uma ideia , cada componente tem um indice, e se eu passe o indice no comando ......componente.visible:= False. o numero do indice deveria ser igualao numero do botao para que essa minha ideia funcionase, so que não sei coomo por essa ideia em pratica.
ai sim e que chegaria o mais perto possivel do que eu quero.
me ajudem pr favor , quem souber executar isto que pensei
pode ser que resolva meu problema, pois monto o nome do componente como se fosse um texto e o comando fax a substituição
depois te respondo o que achei
obrigado
mas mesmo assim continuo a busca de uma solução mais simples, agora me correu uma ideia , cada componente tem um indice, e se eu passe o indice no comando ......componente.visible:= False. o numero do indice deveria ser igualao numero do botao para que essa minha ideia funcionase, so que não sei coomo por essa ideia em pratica.
ai sim e que chegaria o mais perto possivel do que eu quero.
me ajudem pr favor , quem souber executar isto que pensei
GOSTEI 0
Marcos Iwazaki
28/09/2012
opa esqueci de postar a outra parte...
vc pode fazer assim tbm
vc pode fazer assim tbm
var
aux :TSpeedButton;
begin
aux := meuForm.FindComponent('Spb_'+Label3.caption) //aqui vc formata o nome certinho
if Assinged (aux) then begin
TSpeedButton(aux).visible := false;
end
GOSTEI 0
Edson Melo
28/09/2012
ola socram vou testar e depois te respondo, acho que voce entendeu em vez de ter varias linhas para rodar o comando, eu gostaria de ter apenas uma e que fizesse o serviço todo
mas vou tentar espere que te respondo]
mas vou tentar espere que te respondo]
GOSTEI 0
Claudia Nogueira
28/09/2012
TSpeedButton(FindComponent('Spb_'+Label3.Caption)).Visible := False;
ola socram vou testar e depois te respondo, acho que voce entendeu em vez de ter varias linhas para rodar o comando, eu gostaria de ter apenas uma e que fizesse o serviço todo
mas vou tentar espere que te respondo]
mas vou tentar espere que te respondo]
GOSTEI 0
Diego Jacauna
28/09/2012
Ótima Dica!!! Estava procurando isso faz tempo!
TSpeedButton(FindComponent('Spb_'+Label3.Caption)).Visible := False;
ola socram vou testar e depois te respondo, acho que voce entendeu em vez de ter varias linhas para rodar o comando, eu gostaria de ter apenas uma e que fizesse o serviço todo
mas vou tentar espere que te respondo]
mas vou tentar espere que te respondo]
GOSTEI 0