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

📄 说明.txt

📁 大多数文章中都或多或少的讲到了三层架构。表示层
💻 TXT
字号:
program CardServer;

uses
  Forms,
  Windows,
  //数据连接类
  IConnDB in 'DBConnection\IConnDB.pas',
  ConnDB in 'DBConnection\ConnDB.pas',
  ConnDB_ACCESSServer in 'DBConnection\ConnDB_ACCESSServer.pas',
  ConnDB_SQLServer in 'DBConnection\ConnDB_SQLServer.pas',
  ConnDB_ORACLEServer in 'DBConnection\ConnDB_ORACLEServer.pas',
  ConnDBFactory in 'DBConnection\ConnDBFactory.pas',
  ConnDBFactory_ACCESSServer in 'DBConnection\ConnDBFactory_ACCESSServer.pas',
  ConnDBFactory_SQLServer in 'DBConnection\ConnDBFactory_SQLServer.pas',
  ConnDBFactory_Oralce in 'DBConnection\ConnDBFactory_Oralce.pas',
  ConnDBConfig in 'DBConnection\ConnDBConfig.pas',

  //VO及VOLIST类
  ValueObjectUnit in 'DAOObject\ValueObjectUnit.pas',
  ValueObjectListUnit in 'DAOObject\ValueObjectListUnit.pas',
  IValueObjectListUnit in 'DAOObject\IValueObjectListUnit.pas',
  DynamicDataSetUnit in 'DAOObject\DynamicDataSetUnit.pas',
  ValueObjectDBListUnit in 'DAOObject\ValueObjectDBListUnit.pas',
  VOPrototypeManagerUnit in 'DAOObject\VOPrototypeManagerUnit.pas',

  //DAO类设计
  IDAOValueObjectUnit in 'DAOObject\IDAOValueObjectUnit.pas',
  DAOValueObjectUnit in 'DAOObject\DAOValueObjectUnit.pas',
  
  //服务类设计
  ServiceObjectUnit in 'Service\ServiceObjectUnit.pas',
  SQLAnalyzeServiceUnit in 'Service\SQLAnalyzeServiceUnit.pas',
  
  //业务对象类设计
  BOPrototypeManagerUnit in 'BusinessObj\BOPrototypeManagerUnit.pas',
  BOServiceUnit in 'Service\BOServiceUnit.pas',
  IBaseBOUnit in 'BusinessObj\IBaseBOUnit.pas',
  BaseBOUnit in 'BusinessObj\BaseBOUnit.pas',

  //公共单元
  ResourceStrUnit in 'ResourceStrUnit.pas',
  PublicFuncUnit in 'Public\PublicFuncUnit.pas',
  DataStructureUnit in 'DataStructureUnit.pas',
  CardServer_TLB in 'CardServer_TLB.pas',

  //数据模块
  RDMCardServerUnit in 'RDMCardServerUnit.pas' {RDMCardServer: TRemoteDataModule} {RDMCardServer: CoClass},
  LDMCardServerUnit in 'LDMCardServerUnit.pas' {LDMCardServer: TDataModule},
  IDataPersistentUnit in 'DataPersistent\IDataPersistentUnit.pas',
  DataPersistentUnit in 'DataPersistent\DataPersistentUnit.pas',
  
  //用例:
  ServerFrm in 'ServerFrm.pas' {frmServer},
  UserVO in 'BusinessObj\UserVO.pas',
  UserBO in 'BusinessObj\UserBO.pas',
  UserDAOValueObjectUnit in 'DAOObject\UserDAOValueObjectUnit.pas',
  Unit1 in 'test\Unit1.pas' {Form1};

{$R *.TLB}

{$R *.res}

var
  h_Mutex, h_FindHid: HWND;
  s_MoudleName: string;


function EnumWndProc(h_hwnd: Thandle; c_param: Cardinal) :Boolean; stdcall;
var
  s_ClassName, s_WinMoudleName: string;
  WinInstance: THandle;
begin
  result := true;
  SetLength(s_ClassName,100);
  GetClassName(h_hwnd,pchar(s_ClassName),length(s_ClassName));
  s_ClassName := pchar(s_ClassName);
  if s_ClassName=TfrmServer.ClassName then
  begin
    WinInstance := GetWindowLong(h_hwnd,GWL_HINSTANCE);
    setlength(s_WinMoudleName,100);
    GetModuleFileName(WinInstance,pchar(s_WinMoudleName),length(s_WinMoudleName));
    s_WinMoudleName := pchar(s_WinMoudleName);
    if s_WinMoudleName=s_MoudleName then
    begin
      h_FindHid := h_hwnd;
      result := false;
    end;
  end;
end;

begin
  h_Mutex := CreateMutex(nil,false,'MutexCardServer');

  if WaitForSingleObject(h_Mutex,0)<>wait_TimeOut then
  begin
    Application.Initialize;
    Application.CreateForm(TfrmServer, frmServer);
  Application.CreateForm(TForm1, Form1);
  Application.Run;
  End
  else
    begin
      SetLength(s_MoudleName,100);
      GetModuleFileName(HInstance,pchar(s_MoudleName),length(s_MoudleName));
      s_MoudleName := pchar(s_MoudleName);
      EnumWindows(@EnumWndProc,0);
      if h_FindHid<>0 then
        SetForegroundWindow(h_FindHid);
    end;

end.

⌨️ 快捷键说明

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