Criar TRadioGroup em tempo de execução

Delphi

01/10/2007

Pessoal,
Bom dia!

Tenho em um projeto um ClientDataSet com 5 registros e o que eu preciso fazer é criar um TRadioGroup para cada registro que eu tenha em meu ClientDataSet e de maneira que cada um fique abaixo do outro.
Comecei a fazer mas nao estou conseguindo terminar, segue o codigo:

procedure TForm1.Button1Click(Sender: TObject);
var
  Contador, Topo : integer;
  RG : TRadioGroup;
begin
  Topo := 5;

  CDS.First;
  while not CDS.Eof do begin

    RG := TRadioGroup.Create(nil);
    try

      with RG do begin
        Parent := ScrollBox1;
        Top := Topo;
        Left := 5;
        Caption := CDSPERGUNTA.AsString;

        for Contador := 0 to DBMemo1.Lines.Count - 1 do begin
          Items.Add(DBMemo1.Lines.Strings[Contador]);
        end;

        Topo := Height + 5;

      end;

    finally
      // FreeAndNil(RG);
    end;

    CDS.Next;
  end;
end;


O problema que ja detectei é que estou usando a mesma variavel:

RG : TRadioGroup;


Para criar todos os RadioGroup e de inicio o problema que estou tendo é o ultimo RadioGroup estar sobrepondo o segundo e o terceiro RadioGroup uma vez que eu tenho 5 registros no meu ClientDataSet.

Alguem poderia dar uma força?

Abraços!


Mmoreira

Mmoreira

Curtidas 0

Respostas

Mmoreira

Mmoreira

01/10/2007

Pessoal,
Ao que parece vou ter que criar um Array de TRadioGroup. Nunca precisei fazer isso entao nao tenho experiencia. Seria algo do tipo:

procedure TForm1.Button3Click(Sender: TObject); 
var 
  Comp : array of TComponent; 
  x : Integer; 

begin 
  x := 0; 

//  for x := 0 to 3 do begin 
    Comp[x] := TRadioGroup.Create(nil); 
    Comp[x].Name := ´Teste´; 
//  end; 


end; 



Obrigado!


GOSTEI 0
Martins

Martins

01/10/2007

Pessoal, Ao que parece vou ter que criar um Array de TRadioGroup. Nunca precisei fazer isso entao nao tenho experiencia. Seria algo do tipo:
procedure TForm1.Button3Click(Sender: TObject); 
var 
  Comp : array of TComponent; 
  x : Integer; 

begin 
  x := 0; 

//  for x := 0 to 3 do begin 
    Comp[x] := TRadioGroup.Create(nil); 
    Comp[x].Name := ´Teste´; 
//  end; 


end; 
Obrigado!


Vou ver se tem como fazer isso com recursividade.

bons códigos.


GOSTEI 0
POSTAR