Tonight I was trying to install some hcOPF objects into the D7 IDE so I could use the design-time functionality to bind UI controls to the attributes of an object. I created a package, included all units I thought were needed and then added all implicitly imported units or the packages that contained them. I then tried a Build and got an ‘Internal Error U1295′ at the line where I include hcDevExpress in my Implementation section.
I thought I would Google the error, and I came up with a measly 4 hits with no answers, only others asking questions, although many of the pages had to be translated by Google. I did stumble upon an article from Steve Trefethen here. Oddly enough, searching EDN didn’t find anything on U1295, and searching on “internal errors” brought back results for multiple products. It seems weird that there is no product filter in the advanced search options. Furthermore, the Additional Compiler Messages window, which I didn’t even know existed after all these years, until I read Steve’s article, gave this link which is pretty much the article Steve published (nice circular reference).
So here I am, a Delphi developer for many years pulling my hair out (what little is now left) because I have to figure out what is going on by trial and error. I can only imagine how souring an experience this would be for a Delphi newcomer. You would think after 15 years a product might have more comprehensive documentation, especially on it’s support site. Perhaps a more descriptive error message might have be in order, and then additional documentation would not be necessary. Granted I am not using using the latest Delphi release, mainly because I am performing a large scale refactoring and I’m still a CodeRush addict, and this project has a single datamodule with a large number of queries which loads much faster in D7 than D2010.
Based on Steve’s article and my own experience, I re-compiled all my hcOPF IDE packages, and after the IDE died once, and I had to kill the process, I finally got the business object package installed. As I suspected, I am using conditional compilation to include CodeSite messages etc, and if I compile a project that does not use packages with different conditional directives or compiler options than used to compile the packages, I often get into this kind of situation (not always the same Internal Error). It makes for sporadically painful development experience, so I would welcome any suggestions from package developers who dog food their product as it evolves.