criar vários componentes e destruir somente alguns
Estou criando um form que tem a possibilidade de criar vários lábels
em tempo de execução. O meu problema é que queria destruir ou alterar algumas propriedades desses labels, só não estou conseguindo, pois não consigo dizer qual é o componente que criei e que estou selecionado no momento.
em tempo de execução. O meu problema é que queria destruir ou alterar algumas propriedades desses labels, só não estou conseguindo, pois não consigo dizer qual é o componente que criei e que estou selecionado no momento.
Acacio
Curtidas 0
Respostas
Marcio.theis
01/02/2005
Porque vc não faz no momento da criação dos labels que vc coloca o nome poderia personalizar, colocando determinado tipo, ex.: lbl_tipo1_1 ou lbl_tipo2_2, ai vc pode varrer os componentes no momento que encontrar um label verificaria de que tipo ele é. Um idéia que eu dou.
GOSTEI 0
Rômulo Barros
01/02/2005
Adicione dois TButons no seu projeto e configure o Name para btnCriarLabels e btnDestruirLabels. Após isso, siga os passos:
[color=red:e1efaf889b][b:e1efaf889b]1 -[/b:e1efaf889b][/color:e1efaf889b] Declare a matriz MeusLabels na seção pública da sua Unit:
[color=red:e1efaf889b][b:e1efaf889b]2 -[/b:e1efaf889b][/color:e1efaf889b] Agora vamos implementar o evento OnClick do botão btnCriarLabels:
[b:e1efaf889b][color=red:e1efaf889b]3 - [/color:e1efaf889b][/b:e1efaf889b] E agora, por último, vamos implementar o botão ´btnDestruirLabels´:
[color=red:e1efaf889b][b:e1efaf889b]Agora vc poderá alterar qualquer propriedade dos seus labels criados, acessando os mesmos pelos vetores. Exemplo:[/b:e1efaf889b][/color:e1efaf889b]
[color=red:e1efaf889b][b:e1efaf889b]1 -[/b:e1efaf889b][/color:e1efaf889b] Declare a matriz MeusLabels na seção pública da sua Unit:
Public MeusLabels : Array[0..3] Of TLabels; ... ...
[color=red:e1efaf889b][b:e1efaf889b]2 -[/b:e1efaf889b][/color:e1efaf889b] Agora vamos implementar o evento OnClick do botão btnCriarLabels:
procedure TForm1.btnCriarLabelsClick(Sender: TObject); Var Contador : Byte; begin For Contador := 0 To 3 Do Begin MeusLabels[Contador] := TLabel.Create(Form1); MeusLabels[Contador].Caption := ´Label ´ + IntToStr(Contador); MeusLabels[Contador].Name := ´lbl´ + IntToStr(Contador); MeusLabels[Contador].Parent := Form1; MeusLabels[Contador].Top := ((Contador + 1) * 20); End; end;
[b:e1efaf889b][color=red:e1efaf889b]3 - [/color:e1efaf889b][/b:e1efaf889b] E agora, por último, vamos implementar o botão ´btnDestruirLabels´:
procedure TForm1.btnDestruirLabelsClick(Sender: TObject); Var Contador : Byte; begin For Contador := 0 To 3 Do Begin MeusLabels[Contador].Destroy; End; end;
[color=red:e1efaf889b][b:e1efaf889b]Agora vc poderá alterar qualquer propriedade dos seus labels criados, acessando os mesmos pelos vetores. Exemplo:[/b:e1efaf889b][/color:e1efaf889b]
MeusLabels[0].Caption >= ´Novo Caption do Label ´ + MeusLabels[0].Name ;
GOSTEI 0