Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Classe com Filed TList


Manoel Zancheta

Pergunta

Olá. Eu tenho uma classe de produto e nela eu coloquei um field do tipo TList. No formulário. eu consigo adicionar os objetos grupo na lista, porém, na classe na função persistir, eu não consigo "recuperar" os objetos do TList.

Classe

unit uclasse;

interface

uses SysUtils,  Classes, Dialogs, StdCtrls, DB, ADODB;

type

   TGrupo = class

      private

         FChave: String;
      protected

          procedure SetChave(const Value: String);
      public

         property Chave: String read FChave write SetChave;

         constructor Create;
         destructor Destroy; Override;


      published

   end;

   TProduto = class

      private

         FNome: String;
         FGrupo: TList;

      protected

          procedure SetGrupo(const Value: TList);
          procedure SetNome(const Value: String);

      public

         property Nome     : String read  FNome  write SetNome;
         property Grupo    : TList  read  FGrupo write SetGrupo;
         function persistir (prod: TProduto): Boolean;

         constructor Create;
         destructor Destroy; Override;

      published

   end;


implementation





{ TProduto }

constructor TProduto.Create;
begin

   inherited Create;
   FGrupo := TList.Create;
end;

destructor TProduto.Destroy;
begin



  inherited;
end;

function TProduto.persistir(prod: TProduto): Boolean;
begin

   prod.Grupo[1].  <--------????????

end;

procedure TProduto.SetGrupo(const Value: TList);
begin

   FGrupo := Value;
end;

procedure TProduto.SetNome(const Value: String);
begin

   FNome := Value;
end;

{ TGrupo }

constructor TGrupo.Create;
begin

   inherited Create;
end;

destructor TGrupo.Destroy;
begin

  inherited;
end;

procedure TGrupo.SetChave(const Value: String);
begin

   FChave := Value;
end;

end.

e no formulário está assim:

procedure TForm1.Button1Click(Sender: TObject);
var
   produto : TProduto;
   gr      : TGrupo;
   x       : intger;
begin

   produto      := TProduto.Create;
   produto.Nome := 'teste';

   for x:= 1 to 10 do
      begin

         gr           := TGrupo.Create;
         gr.Chave     := '11111';
         produto.Grupo.Add(gr) 

   end;
end;

Estou fazendo algo errado? É possível ter uma llista assim nos fields do componente?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...