Fórum Como centralizar variaveis ? #292575

22/08/2005

0

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 ....


Fabiano Góes

Fabiano Góes

Responder

Posts

23/08/2005

Beppe

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.

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.


Responder

Gostei + 0

23/08/2005

Adriano Santos

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.
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.



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.


Responder

Gostei + 0

23/08/2005

Rjun

Além do mais, essas variáveis teriam q ser publicas...acho isso uma péssima ideia...


Responder

Gostei + 0

23/08/2005

Adriano Santos

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;


Responder

Gostei + 0

24/08/2005

Fabiano Góes

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 !!!!!


Responder

Gostei + 0

24/08/2005

Adriano Santos

É 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.
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.



Responder

Gostei + 0

24/08/2005

Fabiano Góes

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 .


Responder

Gostei + 0

24/08/2005

Fabiano Góes

{$WARNINGS OFF}
{$HINTS OFF}

-----------------------------------------------------------------

Adriano desculpe de amolar mais uma vez, masi o que são esses códigos acima ?


Responder

Gostei + 0

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

Aceitar