Olá..
vou escrever um bocado mas acho que é o suficiente... mas recomento a
leitura de UML e Programação Orientada a Objetos (POO)
por convenção use T antes do nome da classe
e F antes das propriedades em orientação a Objetos você deve
encapsular todas as propriedades ou seja, colocá-las dentro da tag
"private", assim apenas a classe pode acessar a propriedade. Eu
recomendo você ler um pouco sobre os conceitos de Orientação a Objetos
que ajuda a clarear algumas idéias. Seu código ficará mais flexível.
Obs.: Abaixo temos uma classe. e todos os objetos que serão
instanciados por essa classe irão herdar todos os seus métodos
(procedures e functions) e propriedades. Se instancio uma pessoa ela
vai ter nome, sexo etc. e ela herdara todas as suas propriedades.. ou
exemplo.. Numa empresa temos funcionarios horistas e mensalistas..
podemos ter a classe funcionario, a classe horista e mensalista que
herdam funcionario, que por sua vez herda as caracteristicas como
pessoa.. e assim vai..
ex.: Classe Pessoa, Atributos (nome, Nasc, sexo...)
classe Funcionario, atributos(registro, depto...)
classe Horista, alem de todos acima (horas trabalhadas,
vr_hora... e assim vai...
veja um simples exemplo:
unit uObjPessoa;
interface
Type TPessoa = class
private
{apenas os métodos desta classe (TPessoa) tem acesso}
FNome:String[40]; //atributo use F<nome>, por convenção
FIdade:integer;
FEstCivil:String;
protected
{apenas os métodos desta unit (uObjPessoa) tem acesso}
procedure gravaNome(n:string);
procedure gravaIdade(i:integer);
procedure gravaEstCivil(ec:String);
function lerNome:string;
function lerIdade:integer;
function lerEstCivil:String;
public
{qualquer unit pode acessar estes metodos...}
property Nome:String Read lerNome Write gravaNome;
property Idade:String Read lerIdade Write gravaIdade;
property EstadoCivil:String Read lerEstCivil Write gravaIdade;
//método construtor, quando criar a classe já adiciona valores
Constructor create(xNome:String;xIdade:integer); virtual;
//virtual é para poder sobrepor este método usando override
End; //fim TPessoa
Implementation
Constructor TPessoa.create(xNome:String;Idade:Integer);
begin
FNOme:=xNome;
FIdade:=xIdade;
end;
procedure TPessoa.gravaEstCivil(ec:String);
begin
FEstCivil:=ec;
end;
function lerEstCivil:String;
begin
result:=FEstCivil;
end;
.
. {aqui eh so seguir o mesmo caminho com as funções e procedures
restantes}
.
end;
---------------------NA APLICAÇÃO------------------------
//inclui a unit na uses
uses uObjPessoa...;
declara a variavel do tipo da classe pessoa
var vPessoa:TPessoa;
//instanciando o Objeto Rogério da Classe Pessoa
vPessoa:=TPessoa.create('Rogério',25); //chutei a idade hehe
//adicionando seu estado civil;
vPessoa.EstadoCivil:='Solteiro'; //note o nome da propriedade
//para ler as propriedades eh o caminho inverso
button1Click(...);
var sNome,sEstCivil:String;
iIdade:Integer;
begin
sNome:=vPessoa.Nome;
sIdade:=vPessoa.Idade;
sEstCivil:=vPessoa.EstCivil;
end;
{obs.: para efetuar tais operações o objeto ja deve estar instanciado
(create) }
é isso.... hehe
Espero poder ter ajudado...
um abraço...
Bruno Coelho
ps.:(ainda não consigo enviar anexo no Delphi 2005 c/ indy hehe)
--- Em delphi-br@yahoogrupos.com.br, Rogério R. Fernandes
<[EMAIL PROTECTED]> escreveu
> Caros,
>
> Algo que deve ser muito simples, mas não estou conseguindo.
>
> Tenho uma Unit (só unit, sem form) e desejo declarar
> funções/procedures/variáveis separando em Públicas e Privadas.
> Como posso fazer isto?
>
> Rogério Ricardo Fernandes
--
<<<<< 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] ou [EMAIL PROTECTED]
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html