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

(Resolvido) classe (Tlist)


DVMarinho

Pergunta

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

  • 0

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.htm

abraço

Link para o comentário
Compartilhar em outros sites

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...