Como centralizar variaveis ?
Tenho muitas variaveis que são utilizadas em todos os forms,
Como centralizar essas variaveis em uma DLL ?
Se não for pedir muito , por favor passar o codigo ....
Como centralizar essas variaveis em uma DLL ?
Se não for pedir muito , por favor passar o codigo ....
Fabiano Góes
Curtidas 0
Respostas
Beppe
22/08/2005
NUma DLL não vale a pena, o formato PE acredito que aceita, mas o Delphi não exporta variáveis de programas. Daria pra incluir métodos do tipo get/set que permitam a emulação da variável.
Ou vc usa packages com a unit que contém estas vars. Vc inclui então esta unit no seu projeto e coloca a package nas Opções do projeto, em ´Compile with run-time packages´.
PS: Porque vc acha que é vantagem colocar as vars em outro módulo? Eu não mexeria em nada disso.
function GetTotal: Integer; procedure SetTotal(Total: Integer);
Ou vc usa packages com a unit que contém estas vars. Vc inclui então esta unit no seu projeto e coloca a package nas Opções do projeto, em ´Compile with run-time packages´.
PS: Porque vc acha que é vantagem colocar as vars em outro módulo? Eu não mexeria em nada disso.
GOSTEI 0
Adriano Santos
22/08/2005
NUma DLL não vale a pena, o formato PE acredito que aceita, mas o Delphi não exporta variáveis de programas. Daria pra incluir métodos do tipo get/set que permitam a emulação da variável.
Ou vc usa packages com a unit que contém estas vars. Vc inclui então esta unit no seu projeto e coloca a package nas Opções do projeto, em ´Compile with run-time packages´.
PS: Porque vc acha que é vantagem colocar as vars em outro módulo? Eu não mexeria em nada disso.
function GetTotal: Integer; procedure SetTotal(Total: Integer);
Eu também não vejo nenhum problemas nisso. Estranho querer criar as variáveis em outro local, uso milhares de variáveis em meus software e numa tive problemas.
GOSTEI 0
Rjun
22/08/2005
Além do mais, essas variáveis teriam q ser publicas...acho isso uma péssima ideia...
GOSTEI 0
Adriano Santos
22/08/2005
Não sei os demais colegas, mas normalmente eu tenho uma Unit com todas as minhas variáveis, constantes, funções e procedimentos que uso em todos os meus softwares e em toda a aplicação;
GOSTEI 0
Fabiano Góes
22/08/2005
Adriano vc chegou no ponto que eu queria, porem nao sabia como fazer ?
É isso gostaria de colocar as variaveis, procedimentos e funções em uma em uma unica Unit.
Desculpe a minha iguinorancia ai galera , mais já tentei criar uma Unit assim e nao consegui, será que alguem poreia detalhar pra mim ?
Um grande abraço a todos !!!!!
É isso gostaria de colocar as variaveis, procedimentos e funções em uma em uma unica Unit.
Desculpe a minha iguinorancia ai galera , mais já tentei criar uma Unit assim e nao consegui, será que alguem poreia detalhar pra mim ?
Um grande abraço a todos !!!!!
GOSTEI 0
Adriano Santos
22/08/2005
É simples cara, veja:
1 - Entre no Delphi feche todos os seus projetos e então clique em File >> New >> Unit.
2 - O Delphi vai criar pra você uma unit nova com a seguinte estrutura.
3 - Salve-a em um local onde todos os seus projetos podem vê-la, por exemplo: C:\Projetos\MinhasFuncoes
4 - Entre no Tools >> Enviroments Options >> Library e inclua o endereço da sua Unit no Library Path
Obs: Desta forma todos os seus projetos podem enxergar a Unit criada.
5 - Crie suas variáveis, constantes, types, functions e etc.
Obs. Não se esqueça, você deve declarar variáveis, constantes, types, classe etc e também o escopo das functions e procedures antes do interface.
Após o implementation você coloca o código (alogoritimo) das suas functions e procedures.
Bleza, isso criado basta você salvar.
Abra seu projeto e no uses (o 1º de preferência) declare o nome da unit que vc criou por exemplo MinhasFuncoes.
Já era, agora é só colocar tudo lá.
Abraço
Exemplo da minha unit (reduzida claro)
1 - Entre no Delphi feche todos os seus projetos e então clique em File >> New >> Unit.
2 - O Delphi vai criar pra você uma unit nova com a seguinte estrutura.
unit Unit2; interface implementation end.
3 - Salve-a em um local onde todos os seus projetos podem vê-la, por exemplo: C:\Projetos\MinhasFuncoes
4 - Entre no Tools >> Enviroments Options >> Library e inclua o endereço da sua Unit no Library Path
Obs: Desta forma todos os seus projetos podem enxergar a Unit criada.
5 - Crie suas variáveis, constantes, types, functions e etc.
Obs. Não se esqueça, você deve declarar variáveis, constantes, types, classe etc e também o escopo das functions e procedures antes do interface.
Após o implementation você coloca o código (alogoritimo) das suas functions e procedures.
Bleza, isso criado basta você salvar.
Abra seu projeto e no uses (o 1º de preferência) declare o nome da unit que vc criou por exemplo MinhasFuncoes.
Já era, agora é só colocar tudo lá.
Abraço
Exemplo da minha unit (reduzida claro)
unit dclibrary;
{$WARNINGS OFF}
{$HINTS OFF}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, Buttons, ExtCtrls, StdCtrls, ComCtrls, ToolWin, ImgList, DBTables, DB,
DbGrids, ShellApi, Jpeg, XpMenu, Registry, Grids, Ambiente, Typinfo, DbCtrls;
const
C_DiaSemana: array[1..7, 1..3] of string = ((´Domingo´, ´Dom´, ´Domingo´),
(´Segunda-Feira´, ´Seg´, ´Segunda´),
(´Terça-Feira´, ´Ter´, ´Terça´),
(´Quarta-Feira´, ´Qua´, ´Quarta´),
(´Quinta-Feira´, ´Qui´, ´Quinta´),
(´Sexta-Feira´, ´Sex´, ´Sexta´),
(´Sábado´, ´Sab´, ´Sábado´));
C_Mes: array[1..12, 1..2] of string = ((´Janeiro´, ´Jan´),
(´Fevereiro´, ´Fev´),
(´Março´, ´Mar´),
(´Abril´, ´Abr´),
(´Maio´, ´Mai´),
(´Junho´, ´Jun´),
(´Julho´, ´Jul´),
(´Agosto´, ´Ago´),
(´Setembro´, ´Set´),
(´Outubro´, ´Out´),
(´Novembro´, ´Nov´),
(´Dezembro´, ´Dez´));
{DONE : Ajustar os estados}
C_UF: array[1..27, 1..2] of string = ((´São Paulo´, ´SP´),
(´Rio de Janeiro´, ´RJ´),
(´Minas Gerais´, ´MG´),
(´Pernanbuco´, ´PE´),
(´Bahia´, ´BA´),
(´Espírito Santo´, ´ES´),
(´Goiás´, ´GO´),
(´Tocantins´, ´TO´),
(´Pará´, ´PA´),
(´Paraná´, ´PR´),
(´Amazonas´, ´AM´),
(´Acre´, ´AC´),
(´Maranhão´, ´MA´),
(´Mato Grosso´, ´MT´),
(´Mato Grosso do Sul´, ´MS´),
(´Piauí´, ´PI´),
(´Paraíba´, ´PB´),
(´Distrito Federal´, ´DF´),
(´Rio Grande do Sul´, ´RS´),
(´Santa Catarina´, ´SC´),
(´Rôndonia´, ´RO´),
(´Rorâima´, ´RR´),
(´Alagoas´, ´AL´),
(´Amapá´, ´AP´),
(´Ceará´, ´CE´),
(´Rio Grande do Norte´, ´RN´),
(´Sergipe´, ´SE´));
function Dc_MessageDlg(Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; IndiceHelp: LongInt; DefButton: TMOdalResult = mrNone; Portugues: Boolean = True): Word;
implementation
function Dc_MessageDlg(Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; IndiceHelp: LongInt; DefButton: TMOdalResult = mrNone; Portugues: Boolean = True): Word;
var
I: Integer;
Mensagem: TForm;
begin
Mensagem := CreateMessageDialog(Msg, AType, Abuttons);
Mensagem.HelpContext := IndiceHelp;
with Mensagem do begin
for i := 0 to ComponentCount - 1 do begin
if (Components[i] is TButton) then begin
if (TButton(Components[i]).ModalResult = DefButton) then begin
ActiveControl := TWincontrol(Components[i]);
end;
end;
end;
if Portugues then begin
if Atype = mtConfirmation then Caption := ´Confirmação´
else if AType = mtWarning then Caption := ´Aviso´
else if AType = mtError then Caption := ´Erro´
else if AType = mtInformation then Caption := ´Informação´;
end;
end;
if Portugues then begin
TButton(Mensagem.FindComponent(´YES´)).Caption := ´&Sim´;
TButton(Mensagem.FindComponent(´NO´)).Caption := ´&Não´;
TButton(Mensagem.FindComponent(´CANCEL´)).Caption := ´&Cancelar´;
TButton(Mensagem.FindComponent(´ABORT´)).Caption := ´&Abortar´;
TButton(Mensagem.FindComponent(´RETRY´)).Caption := ´&Repetir´;
TButton(Mensagem.FindComponent(´IGNORE´)).Caption := ´&Ignorar´;
TButton(Mensagem.FindComponent(´ALL´)).Caption := ´&Todos´;
TButton(Mensagem.FindComponent(´HELP´)).Caption := ´A&juda´;
end;
Result := Mensagem.ShowModal;
Mensagem.Free;
end;
end.
GOSTEI 0
Fabiano Góes
22/08/2005
Ai adriano Valeu cara pela atenção, não só vc mais todos da comunidade sempre tem a maior paciencia comigo e tenho certeza que é assim com todos que precisam de uma ajuda.
Muito agradecido !!!!!!!!!!
Espero um dia ter um conhecimento ao menos proximo de vcs, para poder ajudar os meus cologas da comunidade tb .
Muito agradecido !!!!!!!!!!
Espero um dia ter um conhecimento ao menos proximo de vcs, para poder ajudar os meus cologas da comunidade tb .
GOSTEI 0
Fabiano Góes
22/08/2005
{$WARNINGS OFF}
{$HINTS OFF}
-----------------------------------------------------------------
Adriano desculpe de amolar mais uma vez, masi o que são esses códigos acima ?
{$HINTS OFF}
-----------------------------------------------------------------
Adriano desculpe de amolar mais uma vez, masi o que são esses códigos acima ?
GOSTEI 0