É, da pra usar teus records como base pras classes de maneira bem facil,
sugiro para as classses usar como classe base a TcollectionItem e em vez de
arrays usa Classes TOwnedCollection, tem exemplos no help do Delphi, com
isso vc programa OOP e garante um melhor uso de memoria, pq só aloca o que
realmente vai usar.

Segue abaixo um exemplo de criação dessas classes, adapte ele pra suas
necessidades:
/*************************
interface

uses
  Classes;

type

  TDireito = class(TCollectionItem)
  private
  public
    constructor Create(ACollection: TCollection); override;
    destructor Destroy; override;

  end;


  TDireitos = class(TOwnedCollection)
  private
    function GetItem(i: integer): TDireito;
    procedure SetItem(i: integer; AValue: TDireito);
  public
    constructor Create(AOwner:TPersistent);
    destructor Destroy; override;

    function Add : TDireito;
    property Items[i:integer]: TDireito read GetItem write SetItem; default;

  end;

implementation

{TDireitos}
constructor TDireitos.Create(AOwner: TPersistent);
begin
  inherited Create(AOwner, TDireito);
end;

destructor TDireitos.Destroy;
begin
  inherited;
end;

function TDireitos.Add: TDireito;
begin
  Result := TDireito( inherited Add );
end;

function TDireitos.GetItem(i: integer): TDireito;
begin
  Result := TDireito( inherited Items[i] );
end;

procedure TDireitos.SetItem(i: integer; AValue: TDireito);
begin
  Items[i].Assign( AValue );
end;


{TDireito}
constructor TDireito.Create(ACollection: TCollection);
begin
  inherited Create(ACollection);
end;

destructor TDireito.Destroy;
begin
  inherited;
end;


end.


/*****************************



Rodrigo Othávio Farias


----- Original Message -----
From: "Benn Yahoo" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Thursday, May 18, 2006 7:51 PM
Subject: [delphi-br] Estouro de Memória - Quais os limites do Delphi A/C
Rodrigo Farias


Camarada,

Como eu faço isso? Criar uma classe com as mesmas variaveis do record?


Olha o que eu estou fazendo assim:

      type TPartialFitnessAssembly = record
         Param1                    :Real;
         Param2                    :Real;
         Param3                    :Real;
         Param4                    :Real;
         Param5                    :Real;
         Loaded                    :boolean;
      end;

      type TAlleleAssembly = record
           Id                      :integer;
           NickName                :String;
           PartialFitness          :TPartialFitnessAssembly;
           Loaded                  :boolean;

           EdNickName              :TEdit;
           LbId                    :TLabel;
      end;

      type TLocusAssembly = record
           Name                    : String;
           Value                   : Integer;
           AllelesCount            : Integer;
           RecombinationRate       : Integer;
           MutationRate            : Integer;
           Alleles                 : array of TAlleleAssembly;
           Loaded                  : boolean;

           EdNickName              : TEdit;
           SpinAlleleCount         : TSpinEdit;
           SpinMutationRate        : TSpinEdit;
           SpinRecombinationRate   : TSpinEdit;
           LbName                  : Tlabel;
           LbCaller                : Tlabel;
           ImgRecombination        : TImage;
      end;

      type TChromosomeAssembly = record
          Id                       : String;
          LocusCount               : Integer;
          Locus                    : array of TLocusAssembly;
          Loaded                   : boolean;

          SELocusCount             : TSpinEdit;
          LbName                   : Tlabel;
          LbCaller                 : Tlabel;
          InfoHint                 : String;
      end;

Assim por diante, depois eu crio as variáves a partir destes Tipos
  ----- Original Message -----
  From: Rodrigo Othavio Farias
  To: delphi-br@yahoogrupos.com.br
  Sent: Thursday, May 18, 2006 8:55 AM
  Subject: Re: [delphi-br] Estouro de Memória - Quais os limites do Delphi


  vc podeira trocar esse teu record por uma classe, melhor umas lista de
  objetos, o Delphi trata muito bem essa alocação dinamica de ponteiros de
  objetos. Pense OOP :)



  Rodrigo Othávio Farias


  ----- Original Message -----
  From: "Benn Yahoo" <[EMAIL PROTECTED]>
  To: <delphi-br@yahoogrupos.com.br>
  Sent: Wednesday, May 17, 2006 2:23 PM
  Subject: [delphi-br] Estouro de Memória - Quais os limites do Delphi


  Estou criando um array grande (mais de 20000) este array é montado
  dinâmicamente a partir de um type record, que tem um de seus eixos um
array
  dinâmico de outro type record e assim por diante.

  Porém lá pelas tanta o programa acusa falta de memória e para, não vai nem
  pra frente nem para trás.

  Algumas questões:

  Como posso calcular o tamanho que isso está ocupando na memória?
  como saber o quanto de memória posso usar (uma vez que dando ctrl+alt+del
  ele diz que está ocupando 250, Mb sendo que meu computador tem 1Gb e acusa
  falta de memória)
  Um array tem um limite de tamanho?
  Por que quando eu crio uma variavel de um type record que eu criei e
atribuo
  uma outra variavel do mesmo tipo ele vira apenas uma referência e não uma
  variavel independente, sendo que ao alterar a que recebe o valor o valor é
  alterado na variável que doou o valor.

  Camaradas, obrigado pela força que vcs têm me dado!
  Um Abração,
  Benn





  [As partes desta mensagem que não continham texto foram removidas]





  --
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>



  Links do Yahoo! Grupos












  --
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>





        Yahoo! Grupos, um serviço oferecido por:
              PUBLICIDADE




----------------------------------------------------------------------------
--
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo!.



[As partes desta mensagem que não continham texto foram removidas]






--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>



Links do Yahoo! Grupos













--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a