If you ever wonder why you get no (or incomplete) RTTI from a control that you inherited from a DevExpress one - then look into cxVer.inc where it has the following lines:

If you ever wonder why you get no (or incomplete) RTTI from a control that you inherited from a DevExpress one - then look into cxVer.inc where it has the following lines:

{$IFNDEF CXTEST}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])}
{$ENDIF}

Martin Wienold was wondering (and so was I at first) why he could not properly resolve a form from the DI container that inherited from TdxRibbonForm despite writing a public method with [Inject] attribute on it but it was never called.

Warning: If you are using DevExpress or any other source code that does this (changing the $RTTI directive) and build these sources together with your application (in contrast to using precompiled dcus or even packages) on a version http://qc.embarcadero.com/wc/qcmain.aspx?d=79943 which causes RTTI to disappear even from units that did not have the $RTTI in them.

Comments

  1. Saving this to my blog queue as Google will never find this for me on G+ when I need it (:

    ReplyDelete
  2. Good news! It seems that Search Community now includes comments! A search for RTTI picks up posts that only mentions RTTI in the comments now.

    Could someone else try an obscure search term and see if it works for them as well?

    ReplyDelete
  3. Yay! Search Community now found "immediate evaluator" in the comments and returned a single post! That was my original complaint item for Send feedback.

    ReplyDelete
  4. Searching for your own name also lists posts you commented on

    ReplyDelete

Post a Comment