summaryrefslogtreecommitdiff
path: root/plugins/!NotAdopted/Chess4Net/NonMainFormStayOnTopUnit.pas
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/!NotAdopted/Chess4Net/NonMainFormStayOnTopUnit.pas')
-rw-r--r--plugins/!NotAdopted/Chess4Net/NonMainFormStayOnTopUnit.pas74
1 files changed, 0 insertions, 74 deletions
diff --git a/plugins/!NotAdopted/Chess4Net/NonMainFormStayOnTopUnit.pas b/plugins/!NotAdopted/Chess4Net/NonMainFormStayOnTopUnit.pas
deleted file mode 100644
index 47ded58c89..0000000000
--- a/plugins/!NotAdopted/Chess4Net/NonMainFormStayOnTopUnit.pas
+++ /dev/null
@@ -1,74 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-// All code below is exclusively owned by author of Chess4Net - Pavel Perminov
-// (packpaul@mail.ru, packpaul1@gmail.com).
-// Any changes, modifications, borrowing and adaptation are a subject for
-// explicit permition from the owner.
-
-unit NonMainFormStayOnTopUnit;
-
-// Inclusion of this unit enables all non-main forms with FormStyle = fsStayOnTop
-// to stay on top even if application is deactivated
-
-interface
-
-implementation
-
-uses
- Forms, SysUtils, Classes, Messages, Windows;
-
-type
- TApplicationObjSubclasser = class
- private
- m_NewObj, m_OldObj: pointer;
- procedure FWndProc(var Message: TMessage);
- public
- constructor Create;
- destructor Destroy; override;
- end;
-
-var
- g_ApplicationObjSubclasserInstance: TApplicationObjSubclasser = nil;
-
-////////////////////////////////////////////////////////////////////////////////
-// TApplicationObjSubclasser
-
-constructor TApplicationObjSubclasser.Create;
-begin
- inherited Create;
-
- m_NewObj := Classes.MakeObjectInstance(FWndProc);
- m_OldObj := Pointer (SetWindowLong(Application.Handle, GWL_WNDPROC,
- Cardinal(m_NewObj)));
-end;
-
-
-destructor TApplicationObjSubclasser.Destroy;
-begin
- SetWindowLong(Application.Handle, GWL_WNDPROC, Cardinal(m_OldObj));
- Classes.FreeObjectInstance(m_NewObj);
-
- inherited;
-end;
-
-
-procedure TApplicationObjSubclasser.FWndProc(var Message: TMessage);
-begin
- Message.Result := CallWindowProc (m_OldObj, Application.Handle,
- Message.Msg, Message.wParam, Message.lParam);
-
- case Message.Msg of
- WM_ACTIVATEAPP:
- begin
- if (not TWMActivateApp(Message).Active) then
- Application.RestoreTopMosts;
- end;
- end;
-end;
-
-initialization
- g_ApplicationObjSubclasserInstance := TApplicationObjSubclasser.Create;
-
-finalization
- FreeAndNil(g_ApplicationObjSubclasserInstance);
-
-end. \ No newline at end of file