unit UDefs;

interface
uses
  SysUtils, Windows, Messages;
        
const

  {Util}
  cBoolFileName = true;
  cBoolFileSize = false;

  {Projeto Tradutor}
  cEmp=1;
  cSigla=2;
  cSite=3;
  cMail=4;

  cbaseLingua=1;
  cbasePais=2;
  cbaseFile=3;

  cDestLingua=1;
  cDestPais=2;
  cDestFile=3;
  cDestTradutor=4;

  //Strings para RegisterWindowMessage
  MWM_PF = 'MWM_PF';
  MWM_PJ = 'MWM_PJ';
  MWM_CodPF = 'MWM_CodPF';
  MWM_CodPJ = 'MWM_CodPJ';

  cShow = true;
  cNotShow = false;

  cPathImagens = 'Imagens\';
  cPathLogo = cPathImagens+ 'Logo\';
  cPathFundos = cPathImagens+ 'Fundos\';
  cPathDados = 'Dados\';
  cPathLogs = 'Logs\';
  cPathSons = 'Sons\';
  cACLes = 'ACLes';
  cACLesX = 'ACLes System BR';
  cIniEx = '.IniEx';
  cResult = '.Result';


      MaxVetStr = 3000;
      MaxVetStrII = 80;
      MaxVetStrIII = 20;
      MaxVetUserDB = 1000;

      Bseg = 60;
      Smin = 3600;
      Shora = 216000;
      Sddia = 5184000;

      MaxVetLimiteBase = 5;
      MaxVetLimiteMatrix = 50;

      {numeração das imagens da arvore}
      IMServer =  0;
      IMDB = 2;
      IMTable = 4;
        IMCampo = 12;
        IMCaracCampo = 12;
        IMPK = 8;
        IMFK = 23;
      IMIndex = 6;
      IMRole = 8;
        IMGrant = 19;
      IMProcedure = 14;
      IMTrigger = 16;
      IMUser = 10;
      IMSelected = 18;

      cria = true;
      Esperar = true;
      fecha = true;

  {  usadas para obter informações de versão de arquivo.  }
  cCompanyName = 2;
  cFileDescription = 3;
  cFileVersion = 4;
  cInternalName = 5;
  cLegalCopyright = 6;
  cLegalTradeMarks = 7;
  cOriginalFileName = 8;
  cProductName = 9;
  cProductVersion = 10;
  cComents = 11;

  cMsgConectado ='Conectado';
  cMsgErro = 'Erro na conexão';
  cMsgDesconectado = 'Desconectado';
  cMsgConectando = 'Conectando Banco de Dados';
  cMsgDesconectando = 'Desconectando Banco de Dados';


type

  TConnectLog = (iConnected, iDesconnected, iErrorOnConnect);
  TInfo = (iTable = 0,iRole = 1,iUser = 2, iTrigger = 3, iProcedure = 4, iFunction = 5, iView = 6, iData = 7, iMetaData = 8);
  TTipoCampo = (tVarchar,tTimeStamp,tFloat,tInteger,tBoolInt,tBoolStr,tTipoInvalido);

  TModeOper = (moAtendente, moProfSaude);

  TTipoTS = (iAbertura, iMeio,iFim);
  TArrayStr = array of String;
  TArrayInt = array of integer;

  TVetMultArray = array of array of string;
  
  TVetStrIII = array [1..2,1..maxVetStrIII] of string;
  TTestaDateTime = (iDate, iTime, iNone);
  TTipoCMPInfo = (icmpNome, icmpTipo, icmpTam, icmpNull);

     TOnde = (DCompo = 0, DCampo = 1);
     TInvData = (iInverte = 0, iNaoInverte = 1);

     TVetLimiteBase = array [1..maxVetLimiteBase] of string;
     TVetLimiteMatrix = array [1..MaxVetLimiteMatrix] of TVetLimiteBase;

     {
       Define o tipo de conexão com o banco
       Projeto: Arvore
     }
     TConnect = (iLocal = 0,iRemote = 1);
     TDirecao = (dUp = 0, dDown = 1);
     {
       Genérico armazena 50 strings
       Projeto: Arvore
     }
     TVetStr = array [1..maxVetStr] of string;
     {
       Genérico armazena 50 strings
       Projeto: Arvore
     }
     TVetStrII = array [1..maxVetStr,1..maxVetStrII] of string;
  //   TVetStrIII = array [1..2,1..maxVetStrIII] of string;
     {
      Armazena os usuários do Servidor
      Projeto: Arvore
     }
     TVetUserDB = Array [1..maxVetUserDB] of string;
     {
      Tipo de inserção em arvore
            iAdd :   adiciona no root
           iAddC :   adiciona como filho do parent
          iAddCF :   adiciona como filho no início do parent
      Projeto: Arvore
     }
  TTipoNo = (iAdd, iAddC, iAddCF);

  Procedure InicializaVar(aExeName:string);
  function setPathAPP(aExeName:string): string;

var
  vPathACLes: string;
  vPathAPP: string;
  vPathImagens: String;
  vPathLogo: String;
  vPathFundos: String;
  vPathDados: String;
  vPathLogs: String;
  vPathSons: String;
implementation

function setPathAPP(aExeName:string): string;
begin
  Result:=  ExtractFilePath(aExeName);
end;

function setPathAnterior(aPath: string):string;
const
  separador = '\';
var
  vInicio: integer;
  i: integer;
  StrAux,strII: string;
  vCopiar: boolean;
begin
  strII:='';
  strAux:='';
  vCopiar:= false;
  if aPath[length(aPath)] = separador then
    vInicio:= length(aPath) -2
  else
    vInicio:= length(aPath);
  for i:= vInicio downto 1 do
  begin
    if aPath[i] = separador then
      vCopiar:= true;
    if vCopiar then
      StrAux:= StrAux + aPath[i]
  end;//for
  for i:= Length(StrAux) Downto 1 do
    StrII:= StrII + StrAux[i];
  result:= StrII;
end;

Procedure InicializaVar;
var
 vPathAnt: string;
begin
  vPathAnt:='';
  vPathAPP:= SetPathApp(aExeName);
  vPathAnt:= SetPathAnterior(vPathAPP);
  vPathACLes:= SetPathAnterior(vPathAnt);

  vPathLogo:= vPathACLes+ cPathLogo;
  vPathImagens:= vPathACLes+ cPathImagens;
  vPathFundos:= vPathACLes+ cPathFundos;
  vPathDados:= vPathACLes+ cPathDados;
  vPathLogs:= vPathACLes+ cPathLogs;
  vPathSons:= vPathACLes+ cPathSons;

end;

end.
