Atribuir valor a uma série de labels criadas em runtime...

Delphi

16/07/2004

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


Rafaelleite

Rafaelleite

Curtidas 0

Respostas

Beppe

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))


GOSTEI 0
Rafaelleite

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...


GOSTEI 0
Persist

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´


GOSTEI 0
Cabelo

Cabelo

16/07/2004

Colega

Vá mais longe..

Crie um vetor do tipo record..

assim poderá trabalhar de forma organizada..

sem mais

Cabelo


GOSTEI 0
POSTAR