From a0f6fd68a56068a20e7186e2dd2d7daccfbce4aa Mon Sep 17 00:00:00 2001 From: Pavel Perminov Date: Wed, 26 Sep 2012 19:02:53 +0000 Subject: Chess4Net_MI 2010.0 release (106 rev. truncated adjusted copy) git-svn-id: http://svn.miranda-ng.org/main/trunk@1666 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Chess4Net/DialogUnit.pas | 196 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 plugins/Chess4Net/DialogUnit.pas (limited to 'plugins/Chess4Net/DialogUnit.pas') diff --git a/plugins/Chess4Net/DialogUnit.pas b/plugins/Chess4Net/DialogUnit.pas new file mode 100644 index 0000000000..921d630dba --- /dev/null +++ b/plugins/Chess4Net/DialogUnit.pas @@ -0,0 +1,196 @@ +unit DialogUnit; + +interface + +uses + Forms, Dialogs, Controls, Classes, Windows, + ModalForm; + +type + TDialogForm = class(TModalForm) + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure ButtonClick(Sender: TObject); + private + m_ModID: TModalFormID; + msgDlg: TForm; + function GetCaption: TCaption; + procedure SetCaption(capt: TCaption); + protected + function GetHandle: hWnd; override; + function GetEnabled_: boolean; override; + procedure SetEnabled_(flag: boolean); override; + function GetLeft_: integer; override; + procedure SetLeft_(x: integer); override; + function GetTop_: integer; override; + procedure SetTop_(y: integer); override; + function GetModalID: TModalFormID; override; + public + constructor Create(frmOwner: TForm; const wstrMsg: WideString; + DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; modID: TModalFormID = mfNone; + msgDlgHandler: TModalFormHandler = nil; bStayOnTopIfNoOwner: boolean = FALSE); overload; + constructor Create(dlgOwner: TDialogs; const wstrMsg: WideString; + DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; modID: TModalFormID; + msgDlgHandler: TModalFormHandler; bStayOnTopIfNoOwner: boolean = FALSE); overload; + destructor Destroy; override; + + procedure Show; override; + procedure Close; override; + function ShowModal: integer; reintroduce; + procedure SetFocus; override; + + property Caption: TCaption read GetCaption write SetCaption; + end; + +implementation + +uses + StdCtrls, SysUtils, MessageDialogUnit; + +constructor TDialogForm.Create(frmOwner: TForm; const wstrMsg: WideString; + DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; modID: TModalFormID = mfNone; + msgDlgHandler: TModalFormHandler = nil; bStayOnTopIfNoOwner: boolean = FALSE); +var + i: integer; +begin + inherited CreateNew(frmOwner); + + m_ModID := modID; + RHandler := msgDlgHandler; + + msgDlg := MessageDialogUnit.CreateMessageDialog(frmOwner, wstrMsg, DlgType, Buttons, + bStayOnTopIfNoOwner); + // msgDlg.FormStyle := frmOwner.FormStyle; + msgDlg.OnShow := FormShow; + msgDlg.OnClose := FormClose; + + for i := 0 to (msgDlg.ComponentCount - 1) do + begin + if (msgDlg.Components[i] is TButton) then + TButton(msgDlg.Components[i]).OnClick := ButtonClick; + end; +end; + + +constructor TDialogForm.Create(dlgOwner: TDialogs; const wstrMsg: WideString; + DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; modID: TModalFormID; + msgDlgHandler: TModalFormHandler; bStayOnTopIfNoOwner: boolean = FALSE); +begin + self.dlgOwner := dlgOwner; + Create((dlgOwner.Owner as TForm), wstrMsg, DlgType, Buttons, modID, msgDlgHandler, bStayOnTopIfNoOwner); +end; + + +procedure TDialogForm.FormShow(Sender: TObject); +begin + inherited FormShow(msgDlg); +end; + + +procedure TDialogForm.FormClose(Sender: TObject; var Action: TCloseAction); +begin + if Assigned(dlgOwner) then + dlgOwner.UnsetShowing(self); + if (fsModal in msgDlg.FormState) then + exit; + if (Assigned(RHandler)) then + RHandler(TModalForm(msgDlg), GetModalID); +// Action := caFree; + Release; +end; + + +procedure TDialogForm.Show; +begin + msgDlg.Show; +end; + + +procedure TDialogForm.Close; +begin + msgDlg.Close; +end; + + +function TDialogForm.ShowModal: integer; +begin + Result := msgDlg.ShowModal; +end; + +procedure TDialogForm.ButtonClick(Sender: TObject); +begin + if not (fsModal in msgDlg.FormState) then + msgDlg.Close; +end; + +destructor TDialogForm.Destroy; +begin + msgDlg.Release; + inherited; +end; + +function TDialogForm.GetCaption: TCaption; +begin + Result := msgDlg.Caption; +end; + +procedure TDialogForm.SetCaption(capt: TCaption); +begin + msgDlg.Caption := capt; +end; + +function TDialogForm.GetHandle: hWnd; +begin + Result := msgDlg.Handle; +end; + + +function TDialogForm.GetEnabled_: boolean; +begin + Result := msgDlg.Enabled; +end; + + +procedure TDialogForm.SetEnabled_(flag: boolean); +begin + msgDlg.Enabled := flag; +end; + + +procedure TDialogForm.SetFocus; +begin + msgDlg.SetFocus; + msgDlg.Show; +end; + + +function TDialogForm.GetLeft_: integer; +begin + Result := msgDlg.Left; +end; + + +procedure TDialogForm.SetLeft_(x: integer); +begin + msgDlg.Left := x; +end; + + +function TDialogForm.GetTop_: integer; +begin + Result := msgDlg.Top; +end; + + +procedure TDialogForm.SetTop_(y: integer); +begin + msgDlg.Top := y; +end; + + +function TDialogForm.GetModalID: TModalFormID; +begin + Result := m_ModID; +end; + +end. -- cgit v1.2.3