criar uma Classe ou Registro (Class ou Record) ?

Delphi

21/06/2005

Fala galera, estou com uma dúvida quanto a [i:1ef03fba39]Classes (Class)[/i:1ef03fba39] ou [i:1ef03fba39]Registros (Record)[/i:1ef03fba39] no Delphi

Algumas informações eu crio em forma de registro, essas inforações são usadas na hora em que o programa vai ativar a conexão com o BD:
type TBandodeDados = [b:1ef03fba39]RECORD[/b:1ef03fba39] Servidor : String; Database : String; Parametros : TStringList; end; ... var Banco : TBancodeDados;


Mas notei que eu posso criar isso como uma Classe:

type TBandodeDados = [b:1ef03fba39]CLASS[/b:1ef03fba39] Servidor : String; Database : String; Parametros : TStringList; end; ... var Banco : TBancodeDados;


Mas como eu não entendo muito sobre isso, será que alguém pode me explicar quais seriam as diferenças entre um e outro e caso eu use como uma classe, onde eu terei vantagens?

Valeu galera!


Eniorm

Eniorm

Curtidas 0

Respostas

Beppe

Beppe

21/06/2005

O Delphi(pre .NET) leva o conceito de classes e records ao extremo. Records são dados e classes são métodos E dados. As classes definem dados tal como records, mas permite, com herança e polimorfismo, modificar o comportamento de um ancestral.

Outro aspecto, é que vc precisa instanciar uma classe para obter um objeto. Já quando declara um record, vc tem os próprios dados dele. Vc pode ver um objeto(instância de uma classe) como um ponteiro disfarçado, que precisa ser alocado e liberado.


GOSTEI 0
Eniorm

Eniorm

21/06/2005

Beppe obrigado pela dica....

No caso eu posso criar a classe TBancoDeDados e nela colocar os dados e posso também criar os procedimentos para conectar e desconectar o banco de dados, correto.

Só me diz como vou fazer para instanciar... basta declarar com o VAR ?
Eu terei que chamar o método CREATE da classe, tipo:

var
   banco : TBancodeDados;
...
   banco := TBancodedados.Create


Correto?


GOSTEI 0
Beppe

Beppe

21/06/2005

Uma VAR pode apontar para diferentes objetos em tempos diferentes. E sim, para instância vc chama o Create da classe. Note que Create é apenas uma convenção, pode dar o nome que quiser ao construtor.


GOSTEI 0
POSTAR