⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untconfig.pas

📁 非常地全面完整的物流供应链管理系统 包含全部的需求文档
💻 PAS
字号:
unit untConfig;
{********************************************************
作者:杨中科
功能:采购部门系统配置
********************************************************}

interface
uses Classes, SysUtils,MConnect, ObjBrkr, SConnect, Variants;

Const
  CONFIGFILENAME = 'Config.ini';
  APPSERVERLISTFILENAME = 'AppServerList.txt';

//设置应用服务器列表
procedure SetAppServerList(AValue: TStringList);
//读取应用服务器列表
procedure GetAppServerList(var AValue: TStringList);
//设置是使用应用服务器列表中的还是使用指定IP
//true是使用用服务器列表中的false则反之
procedure SetUseAppServerList(AValue: Boolean);
//读取是使用应用服务器列表中的还是使用指定IP
//true是使用用服务器列表中的false则反之
function GetUseAppServerList: Boolean;
//设置指定的IP(或局域网机器名)
procedure SetSomeIP(AValue: string);
//读取指定的IP(或局域网机器名)
function GetSomeIP: string;
//返回本机的局域网Ip地址
//  返回值: 成功:  True, 并填充LocalIp   失败:  False
function GetLocalIP(var LocalIp: string): Boolean;

//设定SocketConnection的连接形式
procedure SetSocketConnectionConnect(AValue: TSocketConnection);
//取得采购部门部门编号
function GetOrderDepartId: string;
//设置采购部门部门编号
procedure SetOrderDepartId(AValue: string);

//取得公司名称
function GetCompanyName: string;


implementation
uses CommonFunc, IniFiles,winsock;

procedure SetAppServerList(AValue: TStringList);
var
  f: string;
begin
  if AValue = nil then
    raise Exception.Create('列表为初始化!');
  f := GetApplicationPath + APPSERVERLISTFILENAME;
  if FileExists(f) then
    AValue.SaveToFile(f);
end;

procedure GetAppServerList(var AValue: TStringList);
begin
  if AValue = nil then
    raise Exception.Create('列表为初始化!');
  AValue.LoadFromFile(GetApplicationPath + APPSERVERLISTFILENAME);
end;

procedure SetUseAppServerList(AValue: Boolean);
var
  LIni: TIniFile;
begin
  LIni := TIniFile.Create(GetApplicationPath + CONFIGFILENAME);
  LIni.WriteBool('Connection', 'UseAppServerList', AValue);
  LIni.Free;
end;

function GetUseAppServerList: Boolean;
var
  LIni: TIniFile;
begin
  LIni := TIniFile.Create(GetApplicationPath + CONFIGFILENAME);
  result := LIni.ReadBool('Connection', 'UseAppServerList', false);
  LIni.Free;
end;

procedure SetSomeIP(AValue: string);
var
  LIni: TIniFile;
begin
  LIni := TIniFile.Create(GetApplicationPath + CONFIGFILENAME);
  LIni.WriteString('Connection', 'SomeIP', AValue);
  LIni.Free;
end;

function GetSomeIP: string;
var
  LIni: TIniFile;
begin
  LIni := TIniFile.Create(GetApplicationPath + CONFIGFILENAME);
  result := LIni.ReadString('Connection', 'SomeIP', '127.0.0.1');
  LIni.Free;
end;

function GetLocalIP(var LocalIp: string): Boolean;
var
    HostEnt: PHostEnt;
    Ip: string;
    addr: pchar;
    Buffer: array [0..63] of char;
    GInitData: TWSADATA;
begin
  Result := False;
  try
    WSAStartup(2, GInitData);
    GetHostName(Buffer, SizeOf(Buffer));
    HostEnt := GetHostByName(buffer);
    if HostEnt = nil then Exit;
    addr := HostEnt^.h_addr_list^;
    ip := Format('%d.%d.%d.%d', [byte(addr [0]),
          byte (addr [1]), byte (addr [2]), byte (addr [3])]);
    LocalIp := Ip;
    Result := True;
  finally
    WSACleanup;
  end;
end;

procedure SetSocketConnectionConnect(AValue: TSocketConnection);
  procedure FillAppServerList(ABroker: TSimpleObjectBroker);
  var
    sl: TStringList;
    i, n: Integer;
  begin
    sl := TStringList.Create;
    GetAppServerList(sl);
    n := sl.Count - 1;
    ABroker.ServerData := null;
    for i := 0 to n do
    begin
      ABroker.Servers.Add;
      ABroker.Servers[i].ComputerName := sl.Strings[i]
    end;
    sl.Free;
  end;
var
  LBroker: TSimpleObjectBroker;
begin
  LBroker := TSimpleObjectBroker.Create(nil);
  if GetUseAppServerList then
  begin
    FillAppServerList(LBroker);
    AValue.ObjectBroker := LBroker;
    try
      AValue.Connected := true;
    except
      raise Exception.Create('应用服务器连接错误!');
    end;
  end
  else
  begin
    AValue.Address := GetSomeIP;
    try
      AValue.Connected := true;
    except
      raise Exception.Create('应用服务器连接错误!');
    end;
  end;
  LBroker.Free;

end;

function GetOrderDepartId: string;
var
  LIni: TIniFile;
begin
  LIni := TIniFile.Create(GetApplicationPath + CONFIGFILENAME);
  result := LIni.ReadString('SysConfig', 'OrderDepartId', 'BM001');
  LIni.Free;
end;

procedure SetOrderDepartId(AValue: string);
var
  LIni: TIniFile;
begin
  LIni := TIniFile.Create(GetApplicationPath + CONFIGFILENAME);
  LIni.WriteString('SysConfig', 'OrderDepartId', AValue);
  LIni.Free;
end;

function GetCompanyName: string;
begin
  result := '凌科软件集团';
end;



end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -