Search code examples
delphidelphi-2010

GExpert's Replace Components Expert doesn't replace the text in the form file (*.dfm)


I am using Delphi 2010 and GExperts stable release 1.35

I am testing the "Replace Components" expert.

I add a main form and a secondary form. Each has three TEdits on it.

I use the Replace Components Expert to replace all TEdits with TRzEdit. I Check the Replace all components on all forms of the project.

It works, it replaces them all. However, it doesn't do anything to the DFM file. How do i make it replace those instances.

If i save, compile, or rebuild, i get errors.

If i try to view the form as text after replacing, i get errors.

Can someone explain to me the steps to make this work?

Thanks


Solution

  • You might be running into this bug while trying to copy the Touch property from the old to the new component, but it has a workaround you can fairly easily test: http://tech.groups.yahoo.com/group/GExpertsDiscuss/message/3994

    Details:

    There is a limitation/bug in Delphi 2010 and XE where if you assign a Component.Touch property from one component to another and destroy the original component that the new component becomes corrupt (it isn't like component/interface references, where they either auto-correct themselves or are reference counted).

    For the moment, you can assign a bi-directional replace component property map from TPanel.Touch to TGroupBox.Touch (use the two components being replaced in your specific case) that is marked as a disabled property map, and that will work around this problem. Our next release will not try to assign that property any longer.

    GExperts 1.36 is also now available and includes a workaround for this issue. The workaround has been in the GExperts version control system and in testing for several weeks already.