Criando Classe

Delphi

06/08/2007

Boa noite pessoal!
Montei um Recod:

type
  TCheque = record
    Nome: string;
    CPF: string[14];
  end;


type
  TTroco = class
  private
    FCheque: TCheque;
    procedure SetCheque(const Value: TCheque);
  published
    property Cheque: TCheque read FCheque write SetCheque;
  end;

procedure TTroco.SetCheque(const Value: TCheque);
begin
  FCheque.Nome:= Value.Nome;
  FCheque.CPF:= Value.CPF;
end;


ta fungando blz ,,, so q qdo eu vo atribuir um valor pra propriedade Cheque, teu tenho q passar uma variavel do tipow TCheque como valor...
c eu tentar fazer assim: Troco.Cheque.Nome:= ´Teste´; ele da a msg : Left side cannot be assigned to

alguem sabe resolver isto ?


Output

Output

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

06/08/2007

acho que só funciona se TCheque for uma classe, e não um record.
type
  TCheque = class
    FNome: string;
    FCPF: string;
  private
    procedure SetCPF(const Value: string);
  published
    property Nome: string read FNome write FNome;
    property CPF: string read FCPF write SetCPF;
  end;

  TTroco = class
  private
    FCheque: TCheque;
    procedure SetCheque(const Value: TCheque);
  published
    // como não há nenhum tratamento, a procedure SetCheque é desnecessária
    property Cheque: TCheque read FCheque write FCheque;//SetCheque;
  public
    constructor Create;
    destructor Destroy;
  end;

{ TTroco }

constructor TTroco.Create;
begin
  FCheque := TCheque.Create;
end;

destructor TTroco.Destroy;
begin
  FCheque.Free;
end;

procedure TTroco.SetCheque(const Value: TCheque);
begin
  FCheque.Nome:= Value.Nome;
  FCheque.CPF:= Value.CPF;
end;

{ TCheque }

procedure TCheque.SetCPF(const Value: string);
var
  CPFValido: boolean;
begin
  // aqui pode ser feita a validação necessária
  if FCPF <> Value then
  begin
    CPFValido := Value <> ´000.000.000-00´;
    if not CPFValido then
      raise Exception.Create(´CPF Inválido´);
    FCPF := Value;
  end;
end;



GOSTEI 0
Output

Output

06/08/2007

opa! bom dia [b:87ef9c0742]emerson.en[/b:87ef9c0742] !
kra ... impressionamente como sua dica fez eu entender sobre classe .... hehehehe. Bastou correr os olhos pra linha comentada ´ // como não há nenhum tratamento, a procedure SetCheque é desnecessária ´ e pronto! hehe
É q eu to começando agora a lidar com classes, e somente agora q to entendendo realmente o lance da POO ...
Show de bola ...
deu certinho aki do geito q eu qria .... forte abraço


GOSTEI 0
Adriano Santos

Adriano Santos

06/08/2007

Se quiser saber mais sobre Classes e Objetos, vale a pena dar uma olhada neste artigo. Está em inglês, mas é muito bom:

http://tu.kotev.net/Parvi¬20kurs/Wtori¬20semestar/PIK2/Lect51.htm


GOSTEI 0
Output

Output

06/08/2007

Opa blz [b:1dc34b3524]Adriano Santos[/b:1dc34b3524] com certeza vo olhar sim ...
é mto interessante saber sobre classes ....
vlw pela dica ...


GOSTEI 0
Adriano Santos

Adriano Santos

06/08/2007

Opa blz [b:2a8c8a2c95]Adriano Santos[/b:2a8c8a2c95] com certeza vo olhar sim ... é mto interessante saber sobre classes .... vlw pela dica ...

Pode crer, embora tenha uma certa intimidade com classes, estou aprendendo pra caramba com este artigo. ;)


GOSTEI 0
POSTAR