Manipulando componentes
Estou criando componentes, enquanto o programa está rodando, com o seguinte código:
Até aí, tudo bem.
Mas como faço para mudar, por exemplo, o Caption de um desses labels criados em tempo de execução?
procedure TfrmMain.btCriarClick(Sender: TObject); var gBox: TGroupBox; lAb: TLabel; iMage: TImage; i: Integer; begin for i := 1 to 5 do begin //Cria GroupBox gBox := TGroupBox.Create(frmMain); gBox.Caption := ´Teste´ + InttoStr(i); gBox.Name := ´Afet´ + IntToStr(i); gBox.Height := 113; gBox.Width := 145; gBox.Left := 30 * i; gBox.Top := 50 * i; frmMain.InsertControl(gBox); //Cria Label no Group Box lAb := TLabel.Create(frmMain); lAb.Caption := ´Felipe ´ + InttoStr(i); lAb.Name := ´lbl´ + InttoStr(i); lAb.Left := 10; lAb.Top := 50; gBox.InsertControl(lAb); //Cria Imagem no Group Box iMage := TImage.Create(frmMain); iMage.AutoSize := True; iMage.Left := 30; iMage.Top := 20; iMage.Picture.LoadFromFile(´D:\Imagens\ICO\48x48\48_(5).ico´); gBox.InsertControl(iMage); end; end;
Até aí, tudo bem.
Mas como faço para mudar, por exemplo, o Caption de um desses labels criados em tempo de execução?
Fmd
Curtidas 0
Respostas
Vinicius2k
05/09/2004
Vc quer dizer de um outro local que não seja esta procedure, correto?
Vc tem duas opções...
1. Declarar as variáveis TLabel na seção public do form se quiser que possam ser manipuladas outro form ou função...
2. Declarar as variáveis TLabel na seção private do form se elas só puderem ser manipuladas pelo próprio form a que pertencem...
T+
Vc tem duas opções...
1. Declarar as variáveis TLabel na seção public do form se quiser que possam ser manipuladas outro form ou função...
2. Declarar as variáveis TLabel na seção private do form se elas só puderem ser manipuladas pelo próprio form a que pertencem...
T+
GOSTEI 0
Fmd
05/09/2004
Eu não consegui me explicar direito:
Por exemplo, com aquela rotina, vou criar um [b:49d79cba89]Label[/b:49d79cba89] com o [b:49d79cba89]Name[/b:49d79cba89] de [u:49d79cba89][b:49d79cba89]lbl5[/b:49d79cba89][/u:49d79cba89].
Como posso fazer para depois trocar, por exemplo, o [b:49d79cba89]Caption[/b:49d79cba89] do [u:49d79cba89][b:49d79cba89]lbl5[/b:49d79cba89][/u:49d79cba89], se ele não existe quando compilo o programa?
Por exemplo, com aquela rotina, vou criar um [b:49d79cba89]Label[/b:49d79cba89] com o [b:49d79cba89]Name[/b:49d79cba89] de [u:49d79cba89][b:49d79cba89]lbl5[/b:49d79cba89][/u:49d79cba89].
Como posso fazer para depois trocar, por exemplo, o [b:49d79cba89]Caption[/b:49d79cba89] do [u:49d79cba89][b:49d79cba89]lbl5[/b:49d79cba89][/u:49d79cba89], se ele não existe quando compilo o programa?
GOSTEI 0
Nildo
05/09/2004
TLabel( FindComponent( ´lbl5´ ) ).caption := ´teste´;
GOSTEI 0
Fmd
05/09/2004
Valeu [b:33658cb4c4]Nildo[/b:33658cb4c4]. Era isso mesmo que eu estava precisando.
GOSTEI 0