variavei publicas ?

18/01/2006

0

Boa boite

estou criando um programa frente de caixa. E quando o usuario entra no sistemas tem que informar a Filial e codigo ae faço uma busca por Filial + codigo retorno o nome ate ae tudo bem, agora :

como posso saber o que foi recuperado durante toda a execução do sistema, enquanto o ususario estiver logado.

qual e a melhor maneira, Propriedade no form etc...


obrigado


Pereiramarcos

Pereiramarcos

Responder

Posts

19/01/2006

Thomaz_prg

O que você quer é armazenar o código e filial??

Se for, basta criar as variáveis públicas mesmo.


Responder

19/01/2006

Pereiramarcos

thomaz , valeu cara

vou Armazenar sim, e tudo que o uzuario fizer, por exemplo :
que foi o usuario e de qual filial.

o usuario que recebeu a fatura xyz, ou o cupom xyz nao sei se estou sendo claro ele sera o caixa aberto. E tudo que o caixa fizer sera registrado com o codigo dele.

ae fiquei em duvida se criar uma variavel publica ou uma propriedade no form, haja visto que sera varios forms.
é um programa de frente de caixa
logo ele baica contas a receber, baixa estoque da entrada de cheque cartao etc....


Responder

19/01/2006

Michael

Use sempre que possível propriedades e campos de formulários, e evite ao máximo variáveis globais.

Mesmo programando RAD, mantenha os bons constumes da orientação a objetos. ;-)

[]´s


Responder

19/01/2006

Thomaz_prg

Mas tipo, se ele preferir, pode criar uma ´Classe´ simples, para as variáveis. Em uma unit separada. Assim daria maior organização do que vincular isso a um formulário.


Responder

19/01/2006

Michael

Não vejo problemas de organização ao se usar propriedades em formulários. O que se está fazendo é apenas extender a classe TForm, com características próprias de cada tela do programa. Um form é uma classe como qualquer outra, e pode ser derivado e extendido tbm.

[]´s


Responder

19/01/2006

Pereiramarcos

Thomaz, obrigado pela dica pode me dar um exemplo pra eu ver como ficaria.

obrigado michael, pode me dar um exemplo, ou seria isso :

form=class(tform)

property codigo:string

end;

acho que estou misturando Foxpro com delphi... :cry:


Responder

19/01/2006

Michael

Segue abaixo o exemplo:

TForm1 = class(TForm)
...
private
  FMinhaPropriedade: string;
public
  property MinhaPropriedade: string read FMinhaPropriedade write FMinhaPropriedade;
end;

...

Form1.MinhaPropriedade := ´Michael´;


Se quiser que a propriedade seja somente-leitura, retire o [b:504d596ff5]write FMinhaPropriedade[/b:504d596ff5] do código.

[]´s


Responder

20/01/2006

Pereiramarcos

obrigado michael, vou implementar.


Responder

20/01/2006

Siam

Mas se a property é read e write, qual a diferença de definir uma variável pública diretamente ?


Responder

23/01/2006

Michael

Variáveis globais (ou públicas, tanto faz) não são recomendadas por várias razões, entre elas por fazerem a aplicação depender de units, e não de objetos.

É altamente aconselhável programar OO em uma ferramenta OO, como o Delphi, do que seguir o modelo linear e procedural do antigo Pascal.

Se quiser saber mais sobre o assunto, acho q ele já foi discutido antes aqui no fórum. Faça uma pesquisa rápida e tente achar algo. ;-)

[]´s


Responder

23/01/2006

Siam

Variáveis globais (ou públicas, tanto faz) não são recomendadas por várias razões, entre elas por fazerem a aplicação depender de units, e não de objetos.
Como assim ?
Em seu exemplo anterior:
TForm1 = class(TForm) 
... 
private 
  FMinhaPropriedade: string; 
public 
  property MinhaPropriedade: string read FMinhaPropriedade write FMinhaPropriedade; 
end; 

... 

Form1.MinhaPropriedade := ´Michael´;
Para vc utilizar MinhaPropriedade do objeto Form1 vc não tem que enxergar a unit onde ele está se for acessada de outra unit ?

O que quiz dizer é que não vejo diferença entre colocar FMinhaPropriedade como pública e utilizar uma property read/write.


Responder

23/01/2006

Aroldo Zanela

Colega,

Usando este exemplo simples, parecem ser a mesma ´coisa´. Entretanto, há uma significativa diferença conceitual. Em OO, atributos são privados e métodos são públicos e o Delphi possue as propriedades que são mais abrangentes que simples métodos Gets e Sets. Isto visa evitar furos de encapsulamento.


Responder

23/01/2006

Pereiramarcos

Complicou um pouco , se eventos sao publicos e propriedades sao privadas, assim nao esta errado, porem nao e aconselhavel e isso ?
pq fere os conceitos do Delphi.....

alguem pode dar um exemplo para dar uma clareada


Responder

23/01/2006

Aroldo Zanela

Complicou um pouco , se eventos sao publicos e propriedades sao privadas, assim nao esta errado, porem nao e aconselhavel e isso ? pq fere os conceitos do Delphi..... alguem pode dar um exemplo para dar uma clareada

Colega,

Por curiosidade, em que parte do texto eu disse que propriedades são privadas? Onde foi mencionado eventos?


Responder

24/01/2006

Siam

Colegas, no meu caso; utilizo uma property se ela for somente read ou somente write. Se for read/write eu declaro como variável pública.
Sempre programei assim e nunca me deu nenhum problema.[quote:4907b40267=´Aroldo Zanela´]...Isto visa evitar furos de encapsulamento[/quote:4907b40267]Poderia dar algum exemplo de furo de encapsulamento ?


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar