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

📄 dataengine.~dpr

📁 M2原代码 M2原代码
💻 ~DPR
字号:
program DataEngine;

uses
  Windows,
  Messages,
  CommCtrl,
  Resource in 'Resource.pas';
const
  MAINDIALOG_STATUS_HEIGHT = 70;
  MAINDIALOG_LABLES_HEIGHT = 70;
  LABLE_HEIGHT             = 8;

  WM_MAIN                  = WM_USER + 1000;
  WM_MAINTIMER             = WM_MAIN + 1;
procedure InitStatusListView(Handle:HWND);
var
  hStatusListView:HWND;
  LvColumn:LV_COLUMN;
  LvItem:LV_ITEM;
  szText:array[0..63] of Char;
begin
  hStatusListView:=GetDlgItem(Handle,MAINDIALOG_STATUS);
  ListView_SetExtendedListViewStyle(hStatusListView,  LVS_EX_GRIDLINES or LVS_EX_FULLROWSELECT);
  LvColumn.mask   := LVCF_FMT or LVCF_WIDTH or LVCF_TEXT or LVCF_SUBITEM;
  LvColumn.pszText:= szText;

  LvColumn.cx:=40;
  LvColumn.iSubItem:=0;
  LvColumn.fmt:= LVCFMT_CENTER;
  LoadString(hResInstance, STRING_GATE_STATUS0, szText, SizeOf(szText));
  ListView_InsertColumn(hStatusListView,LvColumn.iSubItem,LvColumn);

  LvColumn.cx:=100;
  LvColumn.iSubItem:=1;
  LoadString(hResInstance, STRING_GATE_STATUS1, szText, SizeOf(szText));
  ListView_InsertColumn(hStatusListView,LvColumn.iSubItem,LvColumn);

  LvColumn.cx:=60;
  LvColumn.iSubItem:=2;
  LoadString(hResInstance, STRING_GATE_STATUS2, szText, SizeOf(szText));
  ListView_InsertColumn(hStatusListView,LvColumn.iSubItem,LvColumn);

  LvColumn.cx:=60;
  LvColumn.iSubItem:=3;
  LoadString(hResInstance, STRING_GATE_STATUS3, szText, SizeOf(szText));
  ListView_InsertColumn(hStatusListView,LvColumn.iSubItem,LvColumn);

  LvColumn.cx:=60;
  LvColumn.iSubItem:=4;
  LoadString(hResInstance, STRING_GATE_STATUS4, szText, SizeOf(szText));
  ListView_InsertColumn(hStatusListView,LvColumn.iSubItem,LvColumn);

  LvColumn.cx:=60;
  LvColumn.iSubItem:=5;
  LoadString(hResInstance, STRING_GATE_STATUS5, szText, SizeOf(szText));
  ListView_InsertColumn(hStatusListView,LvColumn.iSubItem,LvColumn);

  LvColumn.cx:=60;
  LvColumn.iSubItem:=6;
  LoadString(hResInstance, STRING_GATE_STATUS6, szText, SizeOf(szText));
  ListView_InsertColumn(hStatusListView,LvColumn.iSubItem,LvColumn);
end;
procedure RestWindows(Handle:HWND);
var
  rcMainWnd,rcMainMemoWnd,rcStatus:TRECT;

begin
  GetClientRect(Handle,rcMainWnd);
  MoveWindow(GetDlgItem(Handle,MAINDIALOG_STATUS),
             0,
             rcMainWnd.Bottom - MAINDIALOG_STATUS_HEIGHT,
             rcMainWnd.Right - rcMainWnd.Left,
             MAINDIALOG_STATUS_HEIGHT,
             True);
  GetClientRect(Handle,rcStatus);
  MoveWindow(GetDlgItem(Handle,MAINDIALOG_MEMO),
             0,
             0,
             rcMainWnd.Right - rcMainWnd.Left,
             (rcMainWnd.Bottom - rcMainWnd.Top) - MAINDIALOG_STATUS_HEIGHT - MAINDIALOG_LABLES_HEIGHT,// - (rcStatus.Bottom - rcStatus.Top) - MAINDIALOG_LABLES_HEIGHT,
             True);
end;
procedure MainTimerProc(Handle:HWND;uMsg:UINT;idEvent:UINT;dwTime:LongWord);stdcall;
begin
  if idEvent = WM_MAINTIMER then begin
    exit;
  end;
end;
function MainDialogProc(Handle:HWND;MsgID:UINT;wParam,lParam:Integer):BOOL;stdcall;
var
  rcMainWnd:TRECT;
  szText   :array[0..63] of Char;
  szMsg    :array[0..63] of Char;
begin
  Result:=True;
  case MsgID of
    WM_INITDIALOG: begin
      LoadString(hResInstance, STRING_ENGINE_TITLE, szText, SizeOf(szText));
      SetWindowText(Handle,szText);
      SetClassLong(Handle, GCL_HICON, LoadIcon(hResInstance, MakeIntResource(PChar(2000))));
      //MessageBox(Handle,GetCommandLine(),'test',MB_OK);
      GetWindowRect(Handle,rcMainWnd);
      RestWindows(Handle);
      MoveWindow(Handle,
             300,
             200,
             rcMainWnd.Right - rcMainWnd.Left,
             rcMainWnd.Bottom - rcMainWnd.Top,
             True);
      InitStatusListView(Handle);
      SetTimer(Handle, WM_MAINTIMER, 1000, @MainTimerProc);
    end;
    WM_SIZE: begin
      RestWindows(Handle);
    end;
    WM_TIMER: begin
//      if wParam = WM_MAINTIMER then begin
//      end;
    end;
    WM_CLOSE: begin
      LoadString(hResInstance, STRING_ENGINE_TITLE, szText, SizeOf(szText));
      LoadString(hResInstance, STRING_ENGINE_EXIT, szMsg, SizeOf(szMsg));
      if MessageBox(Handle,szMsg,szText,MB_ICONQUESTION or MB_YESNO)=IDYES then begin
        EndDialog(Handle, 0);
      end;
      exit;
    end;
    WM_COMMAND: begin
      if wParam = MENU_CONTROL_EXIT then begin
        SendMessage(Handle,WM_CLOSE,0,0);
      end;
      exit;
    end;
  end;
  Result:=False;
end;
begin
  hResInstance:=LoadLibrary(RESLIBRARYFILENAME);
  InitCommonControls();
  DialogBox(hResInstance,MakeIntResource(PChar(1000)), 0, @MainDialogProc);
  FreeLibrary(hResInstance);
end.

⌨️ 快捷键说明

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