Atribuir valor a uma série de labels criadas em runtime...
Olá pessoal... minha dúvida é a seguinte...
Tenho um relatório e nele eu vou criando labels de acordo com o número de registros que eu tenho em uma tabela... por exemplo... se eu tenho 4 registros, eu crio 4 labels... e assim vai...
Pra criar essas labels eu fiz uma repetição ´for´ e fui atribuindo para o ´Name´ das labels um nome qualquer soado com o valor do contador... desse jeito:
var
LB: TLabel;
(..)
for c:=1 to Quantidade_de_registros(Table1) do
begin
Aqui eu crio a label... ta funcionando certo (eu acho)
LB.Name:= ´Label´ + IntToStr(c); (e é aqui que começa o meu problema)
end;
Eu preciso, depois disso, atribuir valores para os captions dessas labels criadas... como eu posso fazer isso?? Seria alguma coisa tipo assim:
for c:=1 to Quantidade_de_registros(Table1) do
Label + IntToStr(c) := ´Texto qualquer´;
Só que é lógico que isso não funciona... mas eu só queria saber como que eu faço depois pra ir atribuindo valores a essas labels sem saber quantas são... e não adianta falar pra já ir atribuindo valores na hora que eu crio as labels pq não adianta... a realidade é um pouco mais complexa que isso... os captions das labels tem que ir mudando algumas vezes e mais um monte de coisa... só coloquei isso como exemplo pra ver se alguem me ajuda... :lol:
Valeu aí... e obrigado a quem puder me ajudar.
[]s
Tenho um relatório e nele eu vou criando labels de acordo com o número de registros que eu tenho em uma tabela... por exemplo... se eu tenho 4 registros, eu crio 4 labels... e assim vai...
Pra criar essas labels eu fiz uma repetição ´for´ e fui atribuindo para o ´Name´ das labels um nome qualquer soado com o valor do contador... desse jeito:
var
LB: TLabel;
(..)
for c:=1 to Quantidade_de_registros(Table1) do
begin
Aqui eu crio a label... ta funcionando certo (eu acho)
LB.Name:= ´Label´ + IntToStr(c); (e é aqui que começa o meu problema)
end;
Eu preciso, depois disso, atribuir valores para os captions dessas labels criadas... como eu posso fazer isso?? Seria alguma coisa tipo assim:
for c:=1 to Quantidade_de_registros(Table1) do
Label + IntToStr(c) := ´Texto qualquer´;
Só que é lógico que isso não funciona... mas eu só queria saber como que eu faço depois pra ir atribuindo valores a essas labels sem saber quantas são... e não adianta falar pra já ir atribuindo valores na hora que eu crio as labels pq não adianta... a realidade é um pouco mais complexa que isso... os captions das labels tem que ir mudando algumas vezes e mais um monte de coisa... só coloquei isso como exemplo pra ver se alguem me ajuda... :lol:
Valeu aí... e obrigado a quem puder me ajudar.
[]s
Rafaelleite
Curtidas 0
Respostas
Beppe
16/07/2004
Vc pode colocar os labéis numa lista ao criá-los, depois acesse cada um com Labeis[c].Caption := xxx; assim naum precisa de Name.
Ou localize o labél pelo nome Owner_Dos_Label.FindComponent(´Label´ + IntToStr(c))
Ou localize o labél pelo nome Owner_Dos_Label.FindComponent(´Label´ + IntToStr(c))
GOSTEI 0
Rafaelleite
16/07/2004
Lista de labels??
Como eu faço pra criar isso? Até que poderia ajudar...
E sobre essa segunda opção... não adianta só localizar o componente, eu preciso atribuir valores para o caption da label...
Se alguém puder ajudar...
Como eu faço pra criar isso? Até que poderia ajudar...
E sobre essa segunda opção... não adianta só localizar o componente, eu preciso atribuir valores para o caption da label...
Se alguém puder ajudar...
GOSTEI 0
Persist
16/07/2004
Lista de labels seria um TList, vc cria um TList e vai adicionando os TLabels lá, para modificar o caption deles vc faz um cast:
TLabel(ListLabel[i]).Caption := ´xxx´.
O FindComponent localiza o componente pelo nome e devolve um TComponent que vc tem que fazer uma cast também.
TLabel(DonoDoLabel.FindComponent(´label.name´)).Caption := ´xxx´
TLabel(ListLabel[i]).Caption := ´xxx´.
O FindComponent localiza o componente pelo nome e devolve um TComponent que vc tem que fazer uma cast também.
TLabel(DonoDoLabel.FindComponent(´label.name´)).Caption := ´xxx´
GOSTEI 0
Cabelo
16/07/2004
Colega
Vá mais longe..
Crie um vetor do tipo record..
assim poderá trabalhar de forma organizada..
sem mais
Cabelo
Vá mais longe..
Crie um vetor do tipo record..
assim poderá trabalhar de forma organizada..
sem mais
Cabelo
GOSTEI 0