jvcllaz: Fix dragging of window of XPCtrls SimpleDemo at title bar.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5416 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2016-12-05 08:47:08 +00:00
parent 6dac65ebd2
commit a4104f058f
2 changed files with 31 additions and 13 deletions

View File

@ -23,6 +23,8 @@ object frmMain: TfrmMain
OnPaint = cntHeaderPaint OnPaint = cntHeaderPaint
Align = alTop Align = alTop
OnMouseDown = cntHeaderMouseDown OnMouseDown = cntHeaderMouseDown
OnMouseMove = cntHeaderMouseMove
OnMouseUp = cntHeaderMouseUp
object btnClose: TJvXPToolButton object btnClose: TJvXPToolButton
Left = 0 Left = 0
Top = 0 Top = 0
@ -178,7 +180,6 @@ object frmMain: TfrmMain
Height = 41 Height = 41
Top = 24 Top = 24
Action = acBtn1 Action = acBtn1
Caption = '&Generate'
TabOrder = 4 TabOrder = 4
StyleManager = styleOffice StyleManager = styleOffice
end end
@ -187,7 +188,6 @@ object frmMain: TfrmMain
Height = 41 Height = 41
Top = 24 Top = 24
Action = acBtn2 Action = acBtn2
Caption = '&Optimize'
TabOrder = 5 TabOrder = 5
Layout = blGlyphRight Layout = blGlyphRight
StyleManager = styleOffice StyleManager = styleOffice
@ -197,7 +197,6 @@ object frmMain: TfrmMain
Height = 41 Height = 41
Top = 24 Top = 24
Action = acBtn4 Action = acBtn4
Caption = 'C++ Code'
TabOrder = 6 TabOrder = 6
Layout = blGlyphBottom Layout = blGlyphBottom
StyleManager = styleOffice StyleManager = styleOffice
@ -207,7 +206,6 @@ object frmMain: TfrmMain
Height = 41 Height = 41
Top = 24 Top = 24
Action = acBtn3 Action = acBtn3
Caption = '&Copy Path'
TabOrder = 7 TabOrder = 7
Layout = blGlyphTop Layout = blGlyphTop
StyleManager = styleOffice StyleManager = styleOffice

View File

@ -29,9 +29,9 @@ unit MainFrm;
interface interface
uses uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, LCLIntf, LCLProc, LCLType,
Dialogs, ActnList, ImgList, JvXPCore, JvXPCheckCtrls, JvXPButtons, ExtCtrls, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ActnList, StdCtrls, ExtCtrls,
StdCtrls, JvXPContainer, JvComponent, JvExControls; JvXPCore, JvXPCheckCtrls, JvXPButtons, JvXPContainer;
type type
{ TfrmMain } { TfrmMain }
@ -71,7 +71,6 @@ type
lbInternalPage: TLabel; lbInternalPage: TLabel;
lbWebEditor: TLabel; lbWebEditor: TLabel;
shpSeperator: TShape; shpSeperator: TShape;
// styleOffice: TJvXPStyleManager;
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure acBtn1Execute(Sender: TObject); procedure acBtn1Execute(Sender: TObject);
procedure acBtn3Execute(Sender: TObject); procedure acBtn3Execute(Sender: TObject);
@ -79,9 +78,13 @@ type
procedure chkOfficeStyleClick(Sender: TObject); procedure chkOfficeStyleClick(Sender: TObject);
procedure chkToogleEnableClick(Sender: TObject); procedure chkToogleEnableClick(Sender: TObject);
procedure cntHeaderMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure cntHeaderMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure cntHeaderMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure cntHeaderMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure cntHeaderPaint(Sender: TObject; Rect: TRect; ACanvas: TCanvas; AFont: TFont); procedure cntHeaderPaint(Sender: TObject; Rect: TRect; ACanvas: TCanvas; AFont: TFont);
procedure cntNetPanelPaint(Sender: TObject; Rect: TRect; ACanvas: TCanvas; AFont: TFont); procedure cntNetPanelPaint(Sender: TObject; Rect: TRect; ACanvas: TCanvas; AFont: TFont);
private private
FDragStartPt: TPoint;
FDragging: Boolean;
{ Private declarations } { Private declarations }
public public
{ Public declarations } { Public declarations }
@ -103,7 +106,7 @@ implementation
Arguments: hWindow: THANDLE; Hide: boolean = True Arguments: hWindow: THANDLE; Hide: boolean = True
Result: DWORD Result: DWORD
-----------------------------------------------------------------------------} -----------------------------------------------------------------------------}
(*
function RemoveTitleBar(hWindow: THANDLE; Hide: boolean = True): DWORD; function RemoveTitleBar(hWindow: THANDLE; Hide: boolean = True): DWORD;
var var
R: TRect; R: TRect;
@ -119,7 +122,7 @@ begin
SetWindowPos(hWindow, 0, 0, 0, (R.Right - R.Left), (R.Bottom - R.Top), SetWindowPos(hWindow, 0, 0, 0, (R.Right - R.Left), (R.Bottom - R.Top),
SWP_NOMOVE or SWP_NOZORDER or SWP_FRAMECHANGED or SWP_NOSENDCHANGING); SWP_NOMOVE or SWP_NOZORDER or SWP_FRAMECHANGED or SWP_NOSENDCHANGING);
end; end;
*)
{----------------------------------------------------------------------------- {-----------------------------------------------------------------------------
Procedure: TfrmMain.FormCreate Procedure: TfrmMain.FormCreate
Author: mh Author: mh
@ -130,7 +133,8 @@ end;
procedure TfrmMain.FormCreate(Sender: TObject); procedure TfrmMain.FormCreate(Sender: TObject);
begin begin
RemoveTitleBar(Handle); // RemoveTitleBar(Handle);
BorderStyle := bsNone;
end; end;
{----------------------------------------------------------------------------- {-----------------------------------------------------------------------------
@ -171,8 +175,24 @@ end;
procedure TfrmMain.cntHeaderMouseDown(Sender: TObject; procedure TfrmMain.cntHeaderMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin begin
ReleaseCapture; FDragStartPt := Point(X, Y);
Perform(WM_SYSCOMMAND, $F012, 0); FDragging := true;
end;
procedure TfrmMain.cntHeaderMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if FDragging then
begin
Left := Left + X - FDragStartPt.X;
Top := Top + Y - FDragStartPt.Y;
end;
end;
procedure TfrmMain.cntHeaderMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FDragging := false;
end; end;
{----------------------------------------------------------------------------- {-----------------------------------------------------------------------------