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

📄 status.cpp

📁 停车场用
💻 CPP
字号:
#include <vcl.h>

#include "status.h"
#include "datetool.h"
#include "Gridtool.h"

/* 定义状态框标示符*/
enum STATUS_ITEM{IDC_BLANK,IDC_OPERATORHEAD,IDC_OPERATOR,
    IDC_INNUMEAD,IDC_INNUM,
    IDC_OUTNUMEAD,IDC_OUTNUM,
    IDC_RESERVER,
    IDC_DISPDATE,IDC_DISPTIME,
    IDC_VENDOR};

//获取设置主状态栏
static void *GetSetMainStatus(void *pStatus);
#define GetMainStatus() ((TStatusBar *)GetSetMainStatus(NULL))

//设置主状态栏
void *SetMainStatus(void *pStatus)
 {
  return(GetSetMainStatus(pStatus));
 }
//获取设置主状态栏
void *GetSetMainStatus(void *pStatus)
 {
  static void *MainStatus;
  void *p;

  p=MainStatus;
  if(pStatus!=NULL)MainStatus=pStatus;
  return(p);
 }

//显示时间和日期
void DispDateAndTime(void)
 {
  static BYTE state=100;
  SYSTEMTIME t;
  char szBuf[30];
  TStatusBar *pStatus;

  pStatus = GetMainStatus();
  if(pStatus==NULL)return;

  GetLocalTime(&t);
  wsprintf(szBuf,"%02d:%02d:%02d",t.wHour,t.wMinute,t.wSecond);
  pStatus->Panels->Items[IDC_DISPTIME]->Text=szBuf;
  if((++state)>60){
    wsprintf(szBuf,"%04d.%02d.%02d %s",t.wYear,t.wMonth,t.wDay,
            GetWeekName(t.wDayOfWeek));
    pStatus->Panels->Items[IDC_DISPDATE]->Text=szBuf;
    state=0;
   }
 }
//显示操作员
void DispOperator(char *pszOperator)
 {
  TStatusBar *pStatus;

  pStatus = GetMainStatus();
  if(pStatus==NULL)return;

  pStatus->Panels->Items[IDC_OPERATOR]->Text=pszOperator;
 }
//显示进入数
void DispParkInNum(int n)
 {
  TStatusBar *pStatus;
  char szBuf[30];

  pStatus = GetMainStatus();
  if(pStatus==NULL)return;

  wsprintf(szBuf,"%d",n);
  pStatus->Panels->Items[IDC_INNUM]->Text=szBuf;
 }
//显示外出数
void DispParkOutNum(int n)
 {
  TStatusBar *pStatus;
  char szBuf[30];

  pStatus = GetMainStatus();
  if(pStatus==NULL)return;

  wsprintf(szBuf,"%d",n);
  pStatus->Panels->Items[IDC_OUTNUM]->Text=szBuf;
 }
//自画状态栏
void OwnerDrawMainStatus(TStatusBar *StatusBar,
      TStatusPanel *Panel, const TRect &Rect)
{
  TCanvas *tc;
  int nIndex,nColor,nAlign;

  nIndex = Panel->Index;
  nAlign = DT_LEFT;
  if(nIndex==IDC_OPERATOR) nColor = clBlue;
  else if(nIndex==IDC_INNUM || nIndex==IDC_OUTNUM)
   { nColor=clRed; nAlign=DT_CENTER; }
  else if(nIndex==IDC_VENDOR)nColor = clNavy; //厂家
  else nColor = clGreen;
  tc = StatusBar->Canvas;
  RectText(tc,Rect,Panel->Text,nColor,nAlign);
}



⌨️ 快捷键说明

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