Variaveis Globais

Delphi

26/03/2005

Olá,

Eu estavava verificando q em minha aplicacao principalmente em todas as rotinas de impressão e algumas outras eu preciso sempre dos mesmos dados, por exemplo, em todos os relatórios sempre coloco o Nome da Empresa que utiliza o sistema, endereço, cnpj, e etc, assim como dados de um usuário logado no sistema, entao eu gostaria de saber como digamos varias, isso eh uma divagação minha, StringLists de Empresa, Usuário, Configuracao do Sistema do usuario logado, lista de UFs, e mais algumas outras.
A minha idéia era gerar todas essas listas ou no logon do usuário ou na criação da aplicação, qdo apresentamos por exemplo a tela de boas vindas do sistema...

Como poderia fazer isso e manter esses dados ativos e acessiveis durante toda a duração da aplicação sem, como eu faço hj, tova vez q necessito, vou ao banco e pego os dados, dessa maneira apenas teria um unico acesso ao BD durante a execução?

Obrigado
Julio


Tuskinhu

Tuskinhu

Curtidas 0

Respostas

Massuda

Massuda

26/03/2005

Não sei se entendi direito, mas acho que você poderia colocar as informações que são ´fixas´ ao longo da execução do programa (uma vez inicializado o programa e conhecido o usuário) em uma unit e compartilhar essa unit com as outras units do programa. Por exemplo:
unit MeusGlobais;

interface

var
  NomeDoUsuario: string = ´´;
  FezLogon: Boolean = False;

implementation

end.
Daí bastaria você convencionar que o NomeDoUsuário seria preenchido no logon e que, uma vez feito o logon do usuário do programa, o valor do NomeDoUsuário seria utilizado em outros pontos do programa.


GOSTEI 0
Tuskinhu

Tuskinhu

26/03/2005

Sim, é por ai, mais eu terei pelo menos quase umas 40 variaveis, por isso falei em StringList, como vc me falou essas variaveis podem ser setadas no inicio da execucao do programa e durante a execução eu posso usá-las somente adicionando a unit ao uses, q as variaveis setadas no inicio do programa estarão lá já setadas ?


Nao sei se vc usou clipper, mas nele eu criava uma variavel Global ao programa no inicio e ela valia a toda aplicação e utilizando assim nessa unit de vars globais ele vai manter todos os dados durante o programa = ao clipper ?


GOSTEI 0
Tuskinhu

Tuskinhu

26/03/2005

Sim, é por ai, mais eu terei pelo menos quase umas 40 variaveis, por isso falei em StringList, como vc me falou essas variaveis podem ser setadas no inicio da execucao do programa e durante a execução eu posso usá-las somente adicionando a unit ao uses, q as variaveis setadas no inicio do programa estarão lá já setadas ? Nao sei se vc usou clipper, mas nele eu criava uma variavel Global ao programa no inicio e ela valia a toda aplicação e utilizando assim nessa unit de vars globais ele vai manter todos os dados durante o programa = ao clipper ?



acrescentando posso criar qq tipo de variaveis, combos, edits e etc tambem nessa unit ?


GOSTEI 0
Edilcimar

Edilcimar

26/03/2005

você pode utilizar variáveis globais, basta adicioná-las no form principal, porém não se esqueça que isto consome memória, algumas vezes é melhor inicializá-las em cada form como variáveis locais para liberar memória, procure só utilizar uma variável de um form em outro somente quando isto for imprescindível


GOSTEI 0
Massuda

Massuda

26/03/2005

...eu terei pelo menos quase umas 40 variaveis, por isso falei em StringList
Se preferir usar um TStringList, talvez as propriedades Values[] e Names[] sejam úteis para você; dê uma olhada na Ajuda do Delphi.

...as variaveis setadas no inicio do programa estarão lá já setadas ?
Sim.

...utilizando assim nessa unit de vars globais ele vai manter todos os dados durante o programa = ao clipper ?
Sim.

...posso criar qq tipo de variaveis, combos, edits e etc tambem nessa unit ?
Não seria uma boa idéia... esses objetos são componentes visuais normalmente associados a um form e para poder utiliza-los dessa forma você teria que assumir o gerenciamento de alguns aspectos que normalmente você nem se preocuparia (criação/destruição, z-order, etc).


GOSTEI 0
Tuskinhu

Tuskinhu

26/03/2005

Se preferir usar um TStringList, talvez as propriedades Values[] e Names[] sejam úteis para você; dê uma olhada na Ajuda do Delphi.


isso são vetores não? posso utilizar vetores numéricos e de strings.


GOSTEI 0
POSTAR