From cbca087674ff4d919337d66a543e4dded0c94b08 Mon Sep 17 00:00:00 2001 From: Andreas Hausladen Date: Wed, 13 Nov 2019 21:35:11 +0100 Subject: [PATCH] Fixed #246: FMX doesn't have a OnMove event --- .../uFMXExternalPumpBrowser.pas | 12 ++++++++++++ demos/Delphi_FMX/FMXToolBoxBrowser/uChildForm.pas | 11 +++++++++++ .../SimpleFMXBrowser/uSimpleFMXBrowser.pas | 11 +++++++++++ 3 files changed, 34 insertions(+) diff --git a/demos/Delphi_FMX/FMXExternalPumpBrowser/uFMXExternalPumpBrowser.pas b/demos/Delphi_FMX/FMXExternalPumpBrowser/uFMXExternalPumpBrowser.pas index 494e254a..fb3e5330 100644 --- a/demos/Delphi_FMX/FMXExternalPumpBrowser/uFMXExternalPumpBrowser.pas +++ b/demos/Delphi_FMX/FMXExternalPumpBrowser/uFMXExternalPumpBrowser.pas @@ -137,6 +137,7 @@ type procedure HandleSYSCHAR(const aMessage : TMsg); procedure HandleSYSKEYDOWN(const aMessage : TMsg); procedure HandleSYSKEYUP(const aMessage : TMsg); + procedure SetBounds(ALeft: Integer; ATop: Integer; AWidth: Integer; AHeight: Integer); override; end; var @@ -791,6 +792,16 @@ begin end; end; +procedure TFMXExternalPumpBrowserFrm.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); +var + PositionChanged: Boolean; +begin + PositionChanged := (ALeft <> Left) or (ATop <> Top); + inherited SetBounds(ALeft, ATop, AWidth, AHeight); + if PositionChanged then + NotifyMoveOrResizeStarted; +end; + procedure TFMXExternalPumpBrowserFrm.NotifyMoveOrResizeStarted; begin if (chrmosr <> nil) then chrmosr.NotifyMoveOrResizeStarted; @@ -934,4 +945,5 @@ begin chrmosr.SendFocusEvent(False); end; + end. diff --git a/demos/Delphi_FMX/FMXToolBoxBrowser/uChildForm.pas b/demos/Delphi_FMX/FMXToolBoxBrowser/uChildForm.pas index 8cc8826e..1d751852 100644 --- a/demos/Delphi_FMX/FMXToolBoxBrowser/uChildForm.pas +++ b/demos/Delphi_FMX/FMXToolBoxBrowser/uChildForm.pas @@ -79,6 +79,7 @@ type procedure NotifyMoveOrResizeStarted; procedure DoDestroyParent; procedure SendCloseMsg; + procedure SetBounds(ALeft: Integer; ATop: Integer; AWidth: Integer; AHeight: Integer); override; property Closing : boolean read FClosing; property Homepage : string read FHomepage write FHomepage; @@ -227,6 +228,16 @@ begin end; end; +procedure TChildForm.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); +var + PositionChanged: Boolean; +begin + PositionChanged := (ALeft <> Left) or (ATop <> Top); + inherited SetBounds(ALeft, ATop, AWidth, AHeight); + if PositionChanged then + NotifyMoveOrResizeStarted; +end; + procedure TChildForm.NotifyMoveOrResizeStarted; begin // This is needed to display some HTML elements correctly diff --git a/demos/Delphi_FMX/SimpleFMXBrowser/uSimpleFMXBrowser.pas b/demos/Delphi_FMX/SimpleFMXBrowser/uSimpleFMXBrowser.pas index ff1789e4..ca8f646a 100644 --- a/demos/Delphi_FMX/SimpleFMXBrowser/uSimpleFMXBrowser.pas +++ b/demos/Delphi_FMX/SimpleFMXBrowser/uSimpleFMXBrowser.pas @@ -105,6 +105,7 @@ type procedure DoBrowserCreated; procedure DoDestroyParent; procedure NotifyMoveOrResizeStarted; + procedure SetBounds(ALeft: Integer; ATop: Integer; AWidth: Integer; AHeight: Integer); override; end; var @@ -318,6 +319,16 @@ begin LoadURL; end; +procedure TSimpleFMXBrowserFrm.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); +var + PositionChanged: Boolean; +begin + PositionChanged := (ALeft <> Left) or (ATop <> Top); + inherited SetBounds(ALeft, ATop, AWidth, AHeight); + if PositionChanged then + NotifyMoveOrResizeStarted; +end; + procedure TSimpleFMXBrowserFrm.NotifyMoveOrResizeStarted; begin if (FMXChromium1 <> nil) then FMXChromium1.NotifyMoveOrResizeStarted;