Selecao DevMedia QUERO SER PRIME

Fórum manipulando objeto. #351390

04/01/2008

0

ola gente estou estudando objeto em delphi, fiz 2 classes de teste e funcionou , mas minha duvida é o seguinte é correto fazer dessa forma por exemplo fiz um classe de cliente e outras de teste mas é correto fazer todas na mesma unit ?


unit Unit2;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TAnimal = class
Nome: string;
idade : Integer;
Altura, Peso: real;
end;

type
Tcarro = class
Marca: string;
end;

type
Tcliente = class

Nome : string;
telefone : Integer;
endereco : String;
end;

var
MeuAnimal: TAnimal;
Carro : Tcarro;
cliente : Tcliente;
implementation

end.

fiz uma classe de cliente e manipulei para gravas os dados no banco fiz esse codigo dentro do envento on Click do botao esta correto:

cliente := Tcliente.Create();
cliente.Nome := Edit1.Text;
cliente.telefone := StrToInt(Edit2.text);
cliente.endereco := Edit3.Text;
ADODataSet1.Insert;
ADODataSet1.FieldByName(´nome´).Value := cliente.Nome;
ADODataSet1.FieldByName(´telefone´).Value := cliente.telefone;
ADODataSet1.FieldByName(´endereco´).Value := cliente.endereco;
ADODataSet1.post;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;


ai que vem minha duvida usei objeto mas o trablho foi maior nesse caso alguem poderia dar uma dica como manipular esse objeto de forma mais inteligente.
sendo que dessa forma funciou.


Ciotti

Ciotti

Responder

Posts

05/01/2008

Massuda

...fiz um classe de cliente e outras de teste mas é correto fazer todas na mesma unit ?
Normalmente se coloca numa mesma unit classes que tem algum relacionamento lógico entre si e que costumam ser usadas juntas.

ai que vem minha duvida usei objeto mas o trablho foi maior nesse caso alguem poderia dar uma dica como manipular esse objeto de forma mais inteligente. sendo que dessa forma funciou.
Um exemplo seria melhor seria se o objeto soubesse se gravar no BD.
procedure Tcliente.Gravar(ADataset: TDataSet);
begin
  ADataSet.Insert; 
  ADataSet.FieldByName(´nome´).Value := Nome; 
  ADataSet.FieldByName(´telefone´).Value := telefone; 
  ADataSet.FieldByName(´endereco´).Value := endereco; 
  ADataSet.post; 
end;

...
cliente := Tcliente.Create(); 
cliente.Nome := Edit1.Text; 
cliente.telefone := StrToInt(Edit2.text); 
cliente.endereco := Edit3.Text; 
cliente.Gravar(ADODataSet1); 
cliente.Free;
...
(não testei, é só um exemplo)


Responder

Gostei + 0

05/01/2008

Ciotti

Ola amigo , realmente trabalhar com objeto e complexo.
nao entendi muito bem esse seu codigo se tivesse como dar mais detalhes por gentileza ou se agluem tiver um outro exemplo fico grato.



Muito obrigado.


Responder

Gostei + 0

09/01/2008

Ciotti

unit Unit2;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TAnimal = class
Nome: string;
idade : Integer;
Altura, Peso: real;
end;

type
Tcarro = class
Marca: string;
end;

type
Tcliente = class

Nome : string;
telefone : Integer;
endereco : String;
end;

var
MeuAnimal: TAnimal;
Carro : Tcarro;
cliente : Tcliente;
implementation

end.

fiz uma classe de cliente e manipulei para gravas os dados no banco fiz esse codigo dentro do envento on Click do botao esta correto:

cliente := Tcliente.Create();
cliente.Nome := Edit1.Text;
cliente.telefone := StrToInt(Edit2.text);
cliente.endereco := Edit3.Text;
ADODataSet1.Insert;
ADODataSet1.FieldByName(´nome´).Value := cliente.Nome;
ADODataSet1.FieldByName(´telefone´).Value := cliente.telefone;
ADODataSet1.FieldByName(´endereco´).Value := cliente.endereco;
ADODataSet1.post;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;


ai que vem minha duvida usei objeto mas o trablho foi maior nesse caso alguem poderia dar uma dica como manipular esse objeto de forma mais inteligente.
sendo que dessa forma funciou.


Responder

Gostei + 0

15/01/2008

Ciotti

alguem por favor da uma luz.


Responder

Gostei + 0

15/01/2008

Rjun

Sem dúvida, trabalhar com objetos dessa maneira é mais trabalhoso. Você pode encontrar material e umas boas discussões no fórum de Java (www.guj.com.br) na seção sobre Metodologias.

O ideal seria que seu objeto tivesse um método Save, pois no seu exemplo, seu objeto somente é um conteiner de informação, não realizando nenhuma ação. Ele poderia ter como propriedade um Dataset e no método save do objeto você chamaria esse dataset. Só que dessa forma seu objeto estaria dependente desse tipo de arquitetura.

Eu sou iniciante nesse tipo de estudo, mas acho que aplicar esse tipo de abordagem em Delphi gera uma complicação excessiva.


Responder

Gostei + 0

16/01/2008

Ciotti

ola amigo vc teria algum exemplo?, por favor.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar