IDE: designer: implemented csDesignInteractive

git-svn-id: trunk@49803 -
This commit is contained in:
mattias 2015-09-09 22:34:53 +00:00
parent bf21367723
commit 2d873789da

View File

@ -1999,6 +1999,7 @@ var
DesignSender: TControl; DesignSender: TControl;
Button: TMouseButton; Button: TMouseButton;
Handled: Boolean; Handled: Boolean;
MouseDownControl: TControl;
begin begin
FHintTimer.Enabled := False; FHintTimer.Enabled := False;
FHintWindow.Visible := False; FHintWindow.Visible := False;
@ -2058,8 +2059,10 @@ begin
if (MouseDownComponent <> nil) and (MouseDownComponent is TControl) then if (MouseDownComponent <> nil) and (MouseDownComponent is TControl) then
begin begin
with TControl(MouseDownComponent).ScreenToClient(Form.ClientToScreen(MouseDownPos)) do MouseDownControl:=TControl(MouseDownComponent);
if TControl(MouseDownComponent).Perform(CM_DESIGNHITTEST, TheMessage.Keys, Longint(SmallPoint(X, Y))) > 0 then with MouseDownControl.ScreenToClient(Form.ClientToScreen(MouseDownPos)) do
if (csDesignInteractive in MouseDownControl.ControlStyle)
or (MouseDownControl.Perform(CM_DESIGNHITTEST, TheMessage.Keys, Longint(SmallPoint(X, Y))) > 0) then
begin begin
TControlAccess(MouseDownComponent).MouseDown(Button, Shift, X, Y); TControlAccess(MouseDownComponent).MouseDown(Button, Shift, X, Y);
Exit; Exit;
@ -2376,6 +2379,7 @@ var
Handled: Boolean; Handled: Boolean;
i, j: Integer; i, j: Integer;
SelectedPersistent: TSelectedControl; SelectedPersistent: TSelectedControl;
MouseDownControl: TControl;
begin begin
FHintTimer.Enabled := False; FHintTimer.Enabled := False;
FHintWindow.Visible := False; FHintWindow.Visible := False;
@ -2413,8 +2417,10 @@ begin
if (MouseDownComponent <> nil) and (MouseDownComponent is TControl) then if (MouseDownComponent <> nil) and (MouseDownComponent is TControl) then
begin begin
with TControl(MouseDownComponent).ScreenToClient(Form.ClientToScreen(MouseUpPos)) do MouseDownControl:=TControl(MouseDownComponent);
if TControl(MouseDownComponent).Perform(CM_DESIGNHITTEST, TheMessage.Keys, Longint(SmallPoint(X, Y))) > 0 then with MouseDownControl.ScreenToClient(Form.ClientToScreen(MouseUpPos)) do
if (csDesignInteractive in MouseDownControl.ControlStyle)
or (MouseDownControl.Perform(CM_DESIGNHITTEST, TheMessage.Keys, Longint(SmallPoint(X, Y))) > 0) then
begin begin
TControlAccess(MouseDownComponent).MouseUp(Button, Shift, X, Y); TControlAccess(MouseDownComponent).MouseUp(Button, Shift, X, Y);
Exit; Exit;
@ -2538,6 +2544,7 @@ var
DesignSender: TControl; DesignSender: TControl;
Handled: Boolean; Handled: Boolean;
MouseMoveComponent: TComponent; MouseMoveComponent: TComponent;
MouseMoveControl: TControl;
begin begin
GetMouseMsgShift(TheMessage, Shift, Button); GetMouseMsgShift(TheMessage, Shift, Button);
@ -2565,8 +2572,10 @@ begin
MouseMoveComponent := ComponentAtPos(LastMouseMovePos.X, LastMouseMovePos.Y, True, True); MouseMoveComponent := ComponentAtPos(LastMouseMovePos.X, LastMouseMovePos.Y, True, True);
if (MouseMoveComponent <> nil) and (MouseMoveComponent is TControl) then if (MouseMoveComponent <> nil) and (MouseMoveComponent is TControl) then
begin begin
with TControl(MouseMoveComponent).ScreenToClient(Form.ClientToScreen(LastMouseMovePos)) do MouseMoveControl:=TControl(MouseMoveComponent);
if TControl(MouseMoveComponent).Perform(CM_DESIGNHITTEST, TheMessage.Keys, Longint(SmallPoint(X, Y))) > 0 then with MouseMoveControl.ScreenToClient(Form.ClientToScreen(LastMouseMovePos)) do
if (csDesignInteractive in MouseMoveControl.ControlStyle)
or (MouseMoveControl.Perform(CM_DESIGNHITTEST, TheMessage.Keys, Longint(SmallPoint(X, Y))) > 0) then
begin begin
TControlAccess(MouseMoveComponent).MouseMove(Shift, X, Y); TControlAccess(MouseMoveComponent).MouseMove(Shift, X, Y);
Exit; Exit;