BSOne.SFC/eCrmHE/EXE_eCrmHomeEdition/Messages/DQnA.pas

175 lines
3.8 KiB
Plaintext

unit DQnA;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.ImageList, Vcl.ImgList,
PngImageList, Vcl.ExtCtrls, Vcl.StdCtrls;
type
TDlgQnA = class(TForm)
imgOk: TImage;
imgCancel: TImage;
imgBtnList: TPngImageList;
Label1: TLabel;
mmQnA: TMemo;
lbOk: TLabel;
lbCancel: TLabel;
procedure imgOkMouseEnter(Sender: TObject);
procedure imgOkMouseLeave(Sender: TObject);
procedure imgCancelClick(Sender: TObject);
procedure imgOkClick(Sender: TObject);
private
{ Private declarations }
procedure SetImgBtn(imgBtn: TImage; nImgIdx: Integer);
public
{ Public declarations }
sMinInputMsg: String;
ReqCmd,
MinStrLen: Integer;
Constructor Create(aOwner: TComponent); override;
procedure CreateParams(var Params: TCreateParams); override; // 작업표시줄에 표시
procedure process_WM_SYSCOMMAND(var msg: TWMSysCommand); Message WM_SYSCOMMAND;
end;
var
DlgQnA: TDlgQnA;
implementation
uses
Define, Winapi.Imm, Tocsg.Trace, ProcessParam, DefineHelper, Tocsg.Strings;
resourcestring
RS_InputText = '문의할 내용을 입력해주십시오.';
{$R *.dfm}
Constructor TDlgQnA.Create(aOwner: TComponent);
begin
Inherited Create(aOwner);
if aOwner = nil then
Position := poScreenCenter;
ReqCmd := 0;
MinStrLen := 0;
sMinInputMsg := '';
Caption := APP_TITLE;
SetImgBtn(imgOk, imgOk.Tag);
SetImgBtn(imgCancel, imgCancel.Tag);
end;
procedure TDlgQnA.CreateParams(var Params: TCreateParams);
begin
Inherited CreateParams(Params);
{$IFDEF _HE_}
Params.ExStyle := WS_EX_APPWINDOW;
{$ENDIF}
end;
procedure TDlgQnA.imgCancelClick(Sender: TObject);
begin
{$IFNDEF _HE_}
if ReqCmd <> 0 then
begin
gParam.SendData(ReqCmd, '');
Close;
end else
{$ENDIF}
ModalResult := mrCancel;
end;
procedure TDlgQnA.imgOkClick(Sender: TObject);
begin
mmQnA.Text := Trim(mmQnA.Text);
if mmQnA.Text = '' then
begin
if ReqCmd = 0 then
MessageBox(Handle, PChar(RS_InputText), PChar(Caption), MB_ICONWARNING or MB_OK)
else
MessageBox(Handle, PChar(Label1.Caption), PChar(Caption), MB_ICONWARNING or MB_OK);
exit;
end;
if (MinStrLen > 0) and
(MinStrLen > Length(StrsReplace(mmQnA.Text, [' '], ''))) then
begin
if sMinInputMsg = '' then
begin
MessageBox(Handle, PChar(Format('최소 %d글자 이상 입력해 주십시오.', [MinStrLen])),
PChar(Caption), MB_ICONWARNING or MB_OK);
end else begin
MessageBox(Handle, PChar(Format(sMinInputMsg, [MinStrLen])),
PChar(Caption), MB_ICONWARNING or MB_OK);
end;
exit;
end;
{$IFDEF _HE_}
ModalResult := mrOk;
{$ELSE}
if ReqCmd = 0 then
ReqCmd := HPCMD_SEND_QnA_MESSAGE;
gParam.SendData(ReqCmd, mmQnA.Text);
Close;
{$ENDIF}
end;
procedure TDlgQnA.imgOkMouseEnter(Sender: TObject);
var
img: TImage;
begin
if Sender = nil then
exit;
if Sender is TImage then
img := TImage(Sender)
else if Sender = lbOk then
img := imgOk
else
img := imgCancel;
SetImgBtn(img, img.Tag + 1);
end;
procedure TDlgQnA.imgOkMouseLeave(Sender: TObject);
var
img: TImage;
begin
if Sender = nil then
exit;
if Sender is TImage then
img := TImage(Sender)
else if Sender = lbOk then
img := imgOk
else
img := imgCancel;
SetImgBtn(img, img.Tag);
end;
procedure TDlgQnA.SetImgBtn(imgBtn: TImage; nImgIdx: Integer);
begin
imgBtnList.GetIcon(nImgIdx, imgBtn.Picture.Icon);
imgBtn.Repaint
end;
procedure TDlgQnA.process_WM_SYSCOMMAND(var msg: TWMSysCommand);
begin
if msg.CmdType = SC_CLOSE then
begin
{$IFNDEF _HE_}
if ReqCmd = 0 then
ReqCmd := HPCMD_SEND_QnA_MESSAGE;
gParam.SendData(ReqCmd, mmQnA.Text);
{$ENDIF}
end;
Inherited;
end;
end.