connecting users of the CorelDRAW family of products

No dragging of objects while making a selection window

rated by 0 users
Answered (Verified) This post has 1 verified answer | 7 Replies | 2 Followers

Share  
Page 1 of 1 (8 items) | RSS

Top 200 Contributor
Delhi
rock1 posted on Fri, May 11 2012 5:53

 

While making selection by drawing a selection window, the objects often get seelected and get dragged. These objects lie on the starting vertex of the selection window. Therefore I have to find the desired bjects to be selected in object manager lying in haphazard order. Is there a way , the objects don’t get dragged while making a selection window from left to right. That means, the objects get selected which are present in the selection window only. 

 

Windows 7 [64-bit], Core i3 - 3.02 GHz, 4GB DDR 3 RAM

 

Answered (Verified) Verified Answer

Top 50 Contributor
Ottawa, Canada
Male
CorelEmployee

Hi rock1,

There are several tricks you can use to make selection easier.

Say you have the following graphic, and you only want to select the red objects

If you often need to select the shapes in the foreground, it may make sense to lock the blue object.  But often this isn't the case so you can:

  1. Start dragging with the left mouse outside of the blue
  2. While still holding the left mouse, hold the right mouse and drag. this will allow you to move the origin of the marquee selection
  3. Move the origin so that it is to the top left of the red shapes
  4. Let go of the right mouse (while still holding the left mouse), and continue resizing the marquee until it surrounds the red shapes.

Alternatively, you can start a selection anywhere (without selecting the shape behind it) by first holding the alt key, then start the marquee selection by dragging with the left mouse, then before you let go of the left mouse, let go of the alt key.

Hendrik

All Replies

Top 200 Contributor
Columbus, Ohio, USA

Not sure if I am understanding your problem. If you mean there is no blank area to start your selection with out touching an object, you could try switching to wireframe view, hols down the Alt key and make your selection. Any object that the marquee touches will be selected rather than having to draw the box completely around them.

Top 50 Contributor
Ottawa, Canada
Male
CorelEmployee

Hi rock1,

There are several tricks you can use to make selection easier.

Say you have the following graphic, and you only want to select the red objects

If you often need to select the shapes in the foreground, it may make sense to lock the blue object.  But often this isn't the case so you can:

  1. Start dragging with the left mouse outside of the blue
  2. While still holding the left mouse, hold the right mouse and drag. this will allow you to move the origin of the marquee selection
  3. Move the origin so that it is to the top left of the red shapes
  4. Let go of the right mouse (while still holding the left mouse), and continue resizing the marquee until it surrounds the red shapes.

Alternatively, you can start a selection anywhere (without selecting the shape behind it) by first holding the alt key, then start the marquee selection by dragging with the left mouse, then before you let go of the left mouse, let go of the alt key.

Hendrik

Top 10 Contributor
Pigeon Forge, TN
Male
TAG - gdgmacros.com

Hi.

Here's a fun little macro that will allow you to hover the mouse over the items and they will be selected.

Just press escape whenever you are finished. You will have to modify slightly for X6 64 bit.

~John

 

Option Explicit
Private Declare Function GetWindowDC Lib "user32" (ByVal hWnd As Long) As Long
Public Type lpPoint
    x As Long
    y As Long
End Type
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Declare Function GetCursorPos Lib "user32" (ByRef pos As lpPoint) As Boolean


Sub hoverSelect()
Dim s As Shape
Dim p As lpPoint
Dim x As Double, y As Double
Dim curX As Double, curY As Double, sr2 As New ShapeRange

    Do While GetAsyncKeyState(vbKeyEscape) = 0
        DoEvents
        GetCursorPos p
        ActiveDocument.ActiveWindow.ScreenToDocument p.x, p.y, x, y
        If curX <> x Or curY <> y Then
            Set s = ActivePage.SelectShapesAtPoint(x, y, True)
            If s.Shapes.count > 0 Then
                sr2.AddRange s.Shapes.All
            End If
            ActiveDocument.ClearSelection
        End If
    Loop
    sr2.CreateSelection
End Sub

"The best thing about learning is that it never stops, and the rabbit hole will go as deep as you let it."
~John
www.gdgmacros.com

Top 25 Contributor
Santos, Brazil
Male
CorelDRAWMaster

Hendrik Wagenaar:
While still holding the left mouse, hold the right mouse and drag. this will allow you to move the origin of the marquee selection

Hi Hendrix, this is a trick that I"ve never tried before. Thanks!

"An old dog learning new tricks" CDGS X6 under: Win 7 Ultimate 32 bits.

Blog: www.winmultimidia.blogspot.com - Site: www.winmultimidia.com.br  

Top 50 Contributor
Emerald Beach NSW Australia
Male

Silvio Win:
Hi Hendrix, this is a trick that I"ve never tried before. Thanks!

 

Same here, that is a handy one! Cool

Hi john sir

the macro is good, i am having corelx6 32 bit, after pressing escape the selection blinks and losing all the selections and it will not be holding the selections.  please rectify this and its simply fantastic. 

Besides want another macros with the same functionality except in the place selection, i want them groupwith selection, hover direct delete, hover direct color, hover direct extract from group.

thank you somuch and lots of love since you are great sir

thank q 

Top 200 Contributor
Delhi

thanks for the tip hendrik

and runflacruiser,

RunFlaCruiser:

Hi.

Here's a fun little macro that will allow you to hover the mouse over the items and they will be selected.

Just press escape whenever you are finished. You will have to modify slightly for X6 64 bit.

~John

 

Option Explicit
Private Declare Function GetWindowDC Lib "user32" (ByVal hWnd As Long) As Long
Public Type lpPoint
    x As Long
    y As Long
End Type
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Declare Function GetCursorPos Lib "user32" (ByRef pos As lpPoint) As Boolean


Sub hoverSelect()
Dim s As Shape
Dim p As lpPoint
Dim x As Double, y As Double
Dim curX As Double, curY As Double, sr2 As New ShapeRange

    Do While GetAsyncKeyState(vbKeyEscape) = 0
        DoEvents
        GetCursorPos p
        ActiveDocument.ActiveWindow.ScreenToDocument p.x, p.y, x, y
        If curX <> x Or curY <> y Then
            Set s = ActivePage.SelectShapesAtPoint(x, y, True)
            If s.Shapes.count > 0 Then
                sr2.AddRange s.Shapes.All
            End If
            ActiveDocument.ClearSelection
        End If
    Loop
    sr2.CreateSelection
End Sub

how can i make this macro??

 

Windows 7 [64-bit], Core i3 - 3.02 GHz, 4GB DDR 3 RAM

 

Page 1 of 1 (8 items) | RSS
© Corel Corporation. The content herein is in the form of a personal web log ("Blog") or forum posting. As such, the views expressed in this site are those of the participants and do not necessarily reflect the views of Corel Corporation, or its affiliates and their respective officers, directors, employees and agents. Terms and Conditions / User Guidelines.