unit DAfterReport; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.Imaging.pngimage, Vcl.StdCtrls, System.ImageList, Vcl.ImgList, PngImageList, Tocsg.Win32; type TDlgAfterReport = class(TForm) imgMain: TImage; imgOk: TImage; imgBtnList: TPngImageList; Label1: TLabel; Label2: TLabel; tInit: TTimer; mmReport: TMemo; lbInfo: TLabel; imgBsoneTop: TImage; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure tInitTimer(Sender: TObject); procedure imgMainMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure imgOkMouseEnter(Sender: TObject); procedure imgOkMouseLeave(Sender: TObject); procedure imgOkClick(Sender: TObject); private { Private declarations } Mutex_: TTgMutex; procedure SetImgBtn(nImgIdx: Integer); public { Public declarations } Constructor Create(aOwner: TComponent); override; procedure CreateParams(var Params: TCreateParams); override; Destructor Destroy; override; procedure SetInfo(sUserName: String; dtAfterRpt: TDateTime); procedure process_WM_SYSCOMMAND(var msg: TWMSysCommand); Message WM_SYSCOMMAND; end; var DlgAfterReport: TDlgAfterReport; implementation uses {$IFDEF _HE_} ManagerService, {$ENDIF} Tocsg.Exception, superobject, Define, GlobalDefine, DefineHelper, ProcessParam, Condition; resourcestring RS_InputConnReason = '접속 사유를 입력해 주십시오.'; {$R *.dfm} Constructor TDlgAfterReport.Create(aOwner: TComponent); begin Inherited Create(aOwner); Mutex_ := TTgMutex.Create(MUTEX_AFTERREPORT); SetImgBtn(0); {$IFDEF _HE_} lbInfo.Caption := Format('%s :: %s', [gMgSvc.HandleConfig.UserName, FormatDateTime('yyyy-mm-dd hh:nn:ss', gMgSvc.AgentModel.AfterRptDT)]); {$ENDIF} imgBsoneTop.Visible := IsBS1Display; tInit.Enabled := true; end; procedure TDlgAfterReport.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); {$IFDEF _HE_} Params.ExStyle := WS_EX_APPWINDOW; {$ENDIF} Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW; end; Destructor TDlgAfterReport.Destroy; begin FreeAndNil(Mutex_); Inherited; end; procedure TDlgAfterReport.SetInfo(sUserName: String; dtAfterRpt: TDateTime); begin lbInfo.Caption := Format('%s :: %s', [sUserName, FormatDateTime('yyyy-mm-dd hh:nn:ss', dtAfterRpt)]); Application.ProcessMessages; end; procedure TDlgAfterReport.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TDlgAfterReport.imgMainMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0); end; procedure TDlgAfterReport.imgOkClick(Sender: TObject); begin mmReport.Text := Trim(mmReport.Text); if mmReport.Text = '' then begin MessageBox(Handle, PChar(RS_InputConnReason), PChar(APP_TITLE), MB_ICONWARNING or MB_OK); exit; end; {$IFDEF _HE_} gMgSvc.AgentModel.AfterRptDT := 0; gMgSvc.AgentModel.Save; gMgSvc.SendEventLog(URI_USER_ACTION, SYSEVT_WORKREPORT, mmReport.Text); {$ELSE} gParam.SendData(HPCMD_SEND_AFTER_REPORT, mmReport.Text); {$ENDIF} Close; end; procedure TDlgAfterReport.imgOkMouseEnter(Sender: TObject); begin SetImgBtn(1); end; procedure TDlgAfterReport.imgOkMouseLeave(Sender: TObject); begin SetImgBtn(0); end; procedure TDlgAfterReport.SetImgBtn(nImgIdx: Integer); begin imgBtnList.GetIcon(nImgIdx, imgOk.Picture.Icon); imgOk.Repaint end; procedure TDlgAfterReport.tInitTimer(Sender: TObject); begin tInit.Enabled := false; if MuTex_.MutexState <> msCreateOk then Close; FormStyle := fsNormal; end; procedure TDlgAfterReport.process_WM_SYSCOMMAND(var msg: TWMSysCommand); begin if msg.CmdType = SC_CLOSE then exit; Inherited; end; end.