Bug Report T838912
Visible to All Users

An error occurs on compiling the dxExpressionEditorHelper unit if the "Emit runtime type information" compiler option is enabled

created 5 years ago

Dear All,

there is an error during compiling my code after installation VCL 19.2.2.

Unit:          "dxExpressionEditorHelpers".
Line:         205 (position) , 206(length),  207(typ)
ERROR:  " the published filed is not a class or interface "

I changed back to version 19.1.7.
There is no error.

IDE: Delphi 10.2 Berlin

Thanks and best regards

Sven

Answers approved by DevExpress Support

created 5 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.

    Other Answers

    created 5 years ago

    Dear All,

    i found for me an workaround.
    I changed your code after line 201.
    Now, I can compile without an error.

    BreakChars = ' [](){}!@#$%^&*-`~''";:,?/|+=<>'#13#10;
    //  strict private type  // delete: change S.Schefer 06.12.2019
     type    // new: change S.Schefer 06.12.2019
      {$REGION 'Internal Types'}
        TTokenInfo = class
        private  // new: change S.Schefer 06.12.2019
          Position: Integer;
          Length: Integer;
          &Type: TdxExpressionContextParserContextType;
        end;
      {$ENDREGION}
      strict private

    Sven

      Comments (3)
      DevExpress Support Team 5 years ago

        Hello Sven,

        From your description, it is not quite clear how to replicate the issue on our side. So, we cannot guarantee that your fix can solve the problem completely (perhaps, it just hides the problem).
        Would you please provide us with a small test project that demonstrates the issue or at least describe in detail how to reproduce it on our side?

        SS SS
        Sven Schefer 1 5 years ago

          Dear Mikhail,

          I'm sorry, but it is not possible to make a test project with this error.
          I don't know where the unit will be used.
          My real project is to big and I use many of Devexpress components.

          I Changed the code to

          strict private type
            {$REGION 'Internal Types'}
              TTokenInfo = class
              public    // add  public: change S.Schefer 13.12.2019
                Position: Integer;
                Length: Integer;
                &Type: TdxExpressionContextParserContextType;
              end;
            {$ENDREGION}

          Please see Ticket T119199.

          thanks and best regards

          Sven

          DevExpress Support Team 5 years ago

            Thank you for the info that you've found a solution.
            I will send this thread to our developers so that they can examine the issue.

            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.