175 lines
3.8 KiB
Plaintext
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.
|