Bug Report T126599
Visible to All Users

Layout View - A data item cannot be dragged if the DragMode and OptionsBehavior.AlwaysShowEditor properties of the View are set to dmAutomatic and False, respectively

created 11 years ago

Something seems to have changed with drag and drop in VCL 14.1.2.  I have a Grid with a Single Column View which has several fields in the view.  In the previous release with DragMode set to dmAutomatic I could click anywhere in the record and drag it (Editing and Inserting is set to false).

Since installing 14.1.2 I can now only drag the record if I click on the column header.  See annotated screenshot attached.

Comments (1)
DevExpress Support Team 11 years ago

    Hello Simon,

    Thank you for your report. I have reproduced the described behavior and forwarded this ticket to our developers for research.

    Answers approved by DevExpress Support

    created 11 years ago

    We have fixed the issue described in this ticket and will include the fix in our next maintenance update. To apply this solution before the official update, request a hotfix by clicking the corresponding link for product versions you require.

    Note: Hotfixes may be unavailable for beta versions and updates that are about to be released.

      Comments (2)
      M M
      Mike Norayr Monjian 11 years ago

        Is the fix correct? I get an exception: E2003 Indeclared identifier: 'AlwaysShowEditor' in the modified fix above:
        procedure TcxGridViewLayoutItemDataCellViewInfo.StateChanged(APrevState: TcxGridCellState);
        begin
         CalculateParamsNeeded;
         inherited StateChanged(APrevState);
         if GridView.OptionsBehavior.AlwaysShowEditor and
            (State = gcsPressed) then
           MouseCapture := False;
         AlwaysShowEditor mode is enabled <<<<<<<<<<<<<<<< the exception is here.
        end;

        DevExpress Support Team 11 years ago

          It seems that you are right. The fix is incorrect. The problematic code is just a comment. Here is the code that should help:

          Delphi
          cxGridViewLayoutContainer.pas procedure TcxGridViewLayoutItemDataCellViewInfo.StateChanged(APrevState: TcxGridCellState); begin CalculateParamsNeeded; inherited StateChanged(APrevState); if GridView.OptionsBehavior.AlwaysShowEditor and (State = gcsPressed) then MouseCapture := False; //AlwaysShowEditor mode is enabled end;

          Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

          Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.