Manipulando componentes

Delphi

05/09/2004

Estou criando componentes, enquanto o programa está rodando, com o seguinte código:

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

Fmd

Curtidas 0

Respostas

Vinicius2k

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+


GOSTEI 0
Fmd

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?


GOSTEI 0
Nildo

Nildo

05/09/2004

TLabel( FindComponent( ´lbl5´ ) ).caption := ´teste´;


GOSTEI 0
Fmd

Fmd

05/09/2004

Valeu [b:33658cb4c4]Nildo[/b:33658cb4c4]. Era isso mesmo que eu estava precisando.


GOSTEI 0
POSTAR