DVMarinho Postado Novembro 2, 2008 Denunciar Share Postado Novembro 2, 2008 por favor me ajudem preciso implementar a classe lista: type TlistaDisciplina = class(TList)o meu projeto e em camadas preciso dessa classe para carregar os valores da queryobs: a classe disciplina possui como atributo: codigo e nome Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Novembro 3, 2008 Denunciar Share Postado Novembro 3, 2008 Há vários pontos importantes para se lembrar sobre a classe de TList. Muito Importante, TList administra sua própria memória, mas não faz diferença entre alocação, ou memória livre para os valores da lista. Embora TList declare o tipo de um item como Ponteiro, você pode armazenar qualquer outra coisa que se ajuste na mesma quantia de memória como um Ponteiro, como um Inteiro, uma matriz , ou um valor enumerado. lembre-se de usar um tipo apropriado. Se você alocar dinamicamente a memória e ponteiros para a memória em um TList, então você tem que se lembrar de liberar todos os itens antes de liberar o objeto TList. Você poderia achar isto mais conveniente derivando sua própria classe de TList. Esteja atento que nenhum dos métodos de TList são virtuais, assim você tem que usar sua classe derivada em todas as declarações de tipo ou então Delphi não chamará seus métodos, mas esses de TList. exemplo:type TS_ObjectList = class(TList) protected function GetObject(Index: Integer): TObject; procedure SetObject(Index: Integer; Value: TObject); procedure SetCount(Value: Integer); procedure SetCapacity(Value: Integer); public destructor Destroy; override; procedure Clear; procedure Delete(Index: Integer); property Objects[Index: Integer]: TObject read GetObject write SetObject; property Count write SetCount; end; { Clear all the objects from the list and destroy the list. } destructor TS_ObjectList.Destroy; begin Clear; inherited Destroy; end; { Return an object from the list. } function TS_ObjectList.GetObject(Index: Integer): TObject; begin Result := TObject(Items[Index]); end; { Set an object in the list. Free the old object. } procedure SetObject(Index: Integer; Value: TObject); begin Objects[Index].Free; Items[Index] := Pointer(Value); end; { Clear the list by deleting all objects in it. } procedure TS_ObjectList.Clear; var I: Integer; begin for I := 0 to Count-1 do Objects[I].Free; inherited Clear; end; { Delete an object from the list, freeing the object } procedure TS_ObjectList.Delete(Index: Integer); begin Objects[Index].Free; inherited Delete(Index); end; { If the list shrinks, free the objects that are implicitly deleted. } procedure TS_ObjectList.SetCount(Value: Integer); begin while Value < Count then Delete(Count-1); inherited Count := Value; end;Mais informações:http://www.tempest-sw.com/secrets/using.htmabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DVMarinho Postado Novembro 4, 2008 Autor Denunciar Share Postado Novembro 4, 2008 Obrigado Jhonas!!era isso mesmo q eu tava precisando Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
DVMarinho
por favor me ajudem preciso implementar a classe lista:
type TlistaDisciplina = class(TList)
o meu projeto e em camadas preciso dessa classe para carregar os valores da query
obs: a classe disciplina possui como atributo: codigo e nome
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.