unit DHelp; 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, PngImageList, System.ImageList, Vcl.ImgList, System.Actions, Vcl.ActnList; type TDlgHelp = class(TForm) imgMain: TImage; imgPrev: TImage; imgNext: TImage; imgHelpList: TPngImageCollection; imgBtnList: TPngImageList; ActionList: TActionList; acPrev: TAction; acNext: TAction; acExit: TAction; acSpacePress: TAction; imgClose: TImage; imgBtnList2: TPngImageList; procedure imgMainMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure imgPrevMouseEnter(Sender: TObject); procedure imgPrevMouseLeave(Sender: TObject); procedure imgPrevMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure imgPrevMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure acExitExecute(Sender: TObject); procedure acPrevExecute(Sender: TObject); procedure acNextExecute(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure imgCloseMouseEnter(Sender: TObject); procedure imgCloseMouseLeave(Sender: TObject); procedure imgCloseMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure imgCloseMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } nCurIdx_: Integer; nSt_, nEd_: Integer; bIsKor_: Boolean; procedure SetHelpImg(nImgIdx: Integer); procedure SetImgBtn(aImgList: TPngImageList; imgBtn: TImage; nImgIdx: Integer); public { Public declarations } Constructor Create(aOwner: TComponent); override; end; var DlgHelp: TDlgHelp; implementation uses KDL.Localizer; {$R *.dfm} Constructor TDlgHelp.Create(aOwner: TComponent); begin Inherited Create(aOwner); if Pos('412', FreeLocalizer.LanguageFile) > 0 then begin // 한글 // imgPrev.Left := 327; // imgNext.Left := 924; nCurIdx_ := 0; nSt_ := 0; nEd_ := 7; end else if Pos('804', FreeLocalizer.LanguageFile) > 0 then begin // 간체 nCurIdx_ := 16; nSt_ := 16; nEd_ := 23; end else if Pos('404', FreeLocalizer.LanguageFile) > 0 then begin // 번체 nCurIdx_ := 24; nSt_ := 24; nEd_ := 31; end else begin // imgPrev.Left := 223; // imgNext.Left := 1033; nCurIdx_ := 8; nSt_ := 8; nEd_ := 15; end; SetHelpImg(nCurIdx_); SetImgBtn(imgBtnList, imgPrev, imgPrev.Tag); SetImgBtn(imgBtnList, imgNext, imgNext.Tag); SetImgBtn(imgBtnList2, imgClose, 0); end; procedure TDlgHelp.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TDlgHelp.acExitExecute(Sender: TObject); begin Close; end; procedure TDlgHelp.acNextExecute(Sender: TObject); begin SetHelpImg(nCurIdx_ + 1); end; procedure TDlgHelp.acPrevExecute(Sender: TObject); begin SetHelpImg(nCurIdx_ - 1); end; procedure TDlgHelp.SetHelpImg(nImgIdx: Integer); begin if (nImgIdx >= nSt_) and (nImgIdx <= nEd_) then begin imgMain.Picture.Assign(imgHelpList.Items[nImgIdx].PngImage); nCurIdx_ := nImgIdx; imgPrev.Visible := nCurIdx_ <> nSt_; imgNext.Visible := nCurIdx_ <> nEd_; end; end; procedure TDlgHelp.SetImgBtn(aImgList: TPngImageList; imgBtn: TImage; nImgIdx: Integer); begin aImgList.GetIcon(nImgIdx, imgBtn.Picture.Icon); imgBtn.Repaint end; procedure TDlgHelp.imgCloseMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin SetImgBtn(imgBtnList2, imgClose, 2); end; procedure TDlgHelp.imgCloseMouseEnter(Sender: TObject); begin SetImgBtn(imgBtnList2, imgClose, 1); end; procedure TDlgHelp.imgCloseMouseLeave(Sender: TObject); begin SetImgBtn(imgBtnList2, imgClose, 0); end; procedure TDlgHelp.imgCloseMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin imgCloseMouseEnter(Sender); end; procedure TDlgHelp.imgMainMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0); end; procedure TDlgHelp.imgPrevMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Sender is TImage then SetImgBtn(imgBtnList, TImage(Sender), TImage(Sender).Tag + 2); end; procedure TDlgHelp.imgPrevMouseEnter(Sender: TObject); begin if Sender is TImage then SetImgBtn(imgBtnList, TImage(Sender), TImage(Sender).Tag + 1); end; procedure TDlgHelp.imgPrevMouseLeave(Sender: TObject); begin if Sender is TImage then SetImgBtn(imgBtnList, TImage(Sender), TImage(Sender).Tag); end; procedure TDlgHelp.imgPrevMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin imgPrevMouseEnter(Sender); end; end.