object list
05/12/2005
0
tenho o seguinte objeto:
TAssociaCampo = class(Tobject) public campoOri: string; CampoDes: string; constructor create(acampoOri, AcampoDes: string); overload; dynamic; constructor create; overload; dynamic; end;
quero criar um objeto do tipo TobjectList para criar uma lista desses meus objetos, mas estou em dúvida de como implementar o método add(): integer;
encontrei o seguinte exemplo:
function TAssociaCampoList.Add(avalor: TAssociaCampo): Integer; var NovoObj : TAssociaCampo; begin NovoObj := TAssociaCampo.Create(nil); NovoObj.Assign(AValor); Result := inherited Add(NovoObj); end;
porem gostaria de saber se do jeito abaixo está mais correto:
function TAssociaCampoList.Add(avalor: TAssociaCampo): Integer; begin Result := inherited Add(avalor); end;
e se eu quiser setar as propriedades do meu objeto TAssociaCampo no momento de adicionar ele na lista, como eu faria?
Obrigado pela força!
Vitor Rubio
Posts
05/12/2005
Massuda
05/12/2005
Vitor Rubio
cada objeto do tipo TassociaCampo eu vou criar durante um loop e adicionar
esses objetos na lista TassociaCampoList, que foi criada logo antes do loop.
Depois eu passo esse objeto TassociaCampoList como parâmetro de uma procedure que vai percorrer todos os itens e fazer o que tem que fazer com cada um dos objetos. Eu não preciso mais dos objetos isolados, apenas das listas.
O importante é que quando eu der free no TassociaCampoList, todos os objetos da lista deverão ser destruidos, e acho que para isso não seria certo clonar os objetos. A segunda maneira é a melhor no meu caso então?
05/12/2005
Massuda
05/12/2005
Vitor Rubio
05/12/2005
Massuda
Quando crio uma lista derivada de TObjectList para ser uma lista de (por exemplo) TMeuObjeto, eu geralmente faço...
type TListaDeMeuObjeto = class(TObjectList) private function GetItem(const Index: Integer): TMeuObjeto; procedure SetItem(const Index: Integer; MeuObjeto: TMeuObjeto); public function Add(MeuObjeto: TMeuObjeto): Integer; function IndexOf(MeuObjeto: TMeuObjeto): Integer; function Remove(MeuObjeto: TMeuObjeto): Integer; procedure Insert(Index: Integer; MeuObjeto: TMeuObjeto); property Items[const Index: Integer]: TMeuObjeto read GetItem write SetItem; default; end;
05/12/2005
Vitor Rubio
Acho que agora vai ^^
Valeu Massuda!
Clique aqui para fazer login e interagir na Comunidade :)