Here's an idea: This would make your exe run-time compatible with the 
streaming format of D2006. It will not work for the IDE but, as you 
noticed, it doesn't actually matter since you can "ignore" the read 
errors when you open the DFM's in D2005 and work on them.

(1) Take a look at the class declaration for any of your forms. 
Ctrl+Click on "TForm" in your class declaration to take you in the 
Forms.pas file at the declaration for TForm.
(2) Add Forms.pas to your project (Project -> Add to project)
(3) The declaration form TForm looks like this: TForm = 
class(TCustomForm); Ctrl+Click on TCustomForm to take you to it's 
declaration.
(4) Scroll down till you reach the "published" section of TCustomForm; 
Mine has only two published properties: Left and Top.
(5) Add those offendint properties: ExplicitLeft, ExplictiTop, 
ExplicitXXX like this:

property ExplicitLeft:Integer read DummyRead write DummyWrite;
property ExplicitTop:Integer read DummyRead write DummyWrite;

(6) Do Ctrl+Shift+C to invoke "class completion"; You'll be taken to the 
skeleton implementation for function DummyRead; Just add "Result := -1" 
to it's code.
(7) Build your project.
(8) Run your project. If all goes well your run-time version of the 
TCustomForm class should be able to read those properties without error :)

This method should work. The "DummyRead" and "DummyWrite" methods are 
there so you don't actually provide any "storage" for your modified 
TCustomForm.ExplicitLeft. As you see DummyWrite does nothing and 
DummyRead returns a constant.

Chris Stebbing wrote:
> Hi All,
>
> I am collaborating on a program with a friend of mine who has Delphi 
> 2006 and I have Delphi 2005.  His program keeps adding a number of 
> properties to some form files which I don't have. namely explicittop 
> explicitleft explicitwidth etc.
>
> I can compile the program ok, but if I try to run the program it dies 
> a horrible death because it doesn't recognise these properties.  My 
> only solution at the moment is to load each form file, change it 
> slightly and resave it in D2005 to remove them.
>
> Is there another solution?
>
> Is is possible for me to hack some file to enable D2005 to handle 
> this error?  Is is possible to have compiler directives in the dfm file?
>
> Cheers,
> Chris.
>
> _______________________________________________
> Delphi mailing list -> [email protected]
> http://www.elists.org/mailman/listinfo/delphi
>
>   

_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi

Reply via email to