05/09/2004

Manipulando componentes

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

Respostas

05/09/2004

Vinicius2k

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+


Responder Citar

06/09/2004

Fmd

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?


Responder Citar

06/09/2004

Nildo

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


Responder Citar

06/09/2004

Fmd

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


Responder Citar