tags:

views:

429

answers:

9

Ok, I'm going nuts here. For the last (almost) four years, I've been putting up with some extremely bad behavior from my Delphi 5 IDE. Problems include:

  • Seemingly random errors in coride50.bpl
  • floating point errors on compiling
  • occasional deletions of my source code files
  • form and object sizes shifting between instances of working on them
  • Loss of links between files on compile: messages that it can't find a function even though it is explicitly referenced
  • The linker frequently fails to include valid .DFM files unless a full build is performed instead of a smaller compile

The biggest problem is that my boss isn't believing that this is happening without any user changes making these issues appear. I've already wiped and reloaded Delphi fresh a couple of times, but that is not something I can do again right now. Most of the issues listed can be easily recovered from (either reload the IDE or re-copy the files out of source control), but this is completely nuts. I've eliminated all the warnings and hints from compile time, haven't covered them up. I've done my best to follow Marco and Microsoft's best practices. Is this just me? Am I the crazy one? How can I stop Delphi from causing these headaches anymore?

+3  A: 

I've never heard of behavior like this from Delphi before. A couple of things to look at:

Are you sure the memory on your machine is good? Have you run Memtest on it?? The last couple of times I've encountered crazy behavior from a machine the culprit turned out to be the memory.

Beyond that, remember that anything you install into Delphi runs in the context of the IDE and if it's buggy it can mess up the IDE. Even a component that writes to a wild pointer could do this to you.

Loren Pechtel
Wild components could easily be a factor. we have two sets that pre-date me, and neither is very reliable in my experience on this. Only using them because we can't upgrade one without destroying a lot of work, and the other has no updates since 2004.
Tom
Memtest run. Memory comes up clean.
Tom
Then it's almost certain you have a bad component. Any design-time editors run in the IDEs context and are quite capable of trashing it.
Loren Pechtel
+6  A: 

I have never seen any version of Delphi delete files under any circumstances.

Do you have any IDE plug-ins installed? This would be my first guess.

Bruce McGee
Have two plug-ins installed, both came after most the problems started. One might be responsible for the deletions though.
Tom
What are they? There might be a known issue that someone recognizes. Regardless, I would try uninstalling them and see it it has any impact.
Bruce McGee
GExperts and SourceConneXion. Already removed SourceConneXion and am looking at it now.
Tom
So far, removing Source ConneXion seems to be helping a lot, but hasn't fully solved the problem, just reduced it quite a bit. Will keep everything updated as I can.
Tom
A: 

Pretty much out of Delphi 5.0 these days. But I do recall it was important to have the latest Build for various reasons. Do you have it?? Go Help->About. I believe this is the latest version: Version 5.0 (Build 6.18) Update Pack 1

M Schenkel
Fully patched, yes.
Tom
+3  A: 

i used d5 for a long time & never saw that. i had some other strange things like you mention about needing to build rather than just compile. i have that in d2009 as well.

X-Ray
At least the build problem isn't unique to me then.
Tom
+7  A: 

Pretty sure it is a bad package. If you can come up with steps that fail repeatedly (which I know is tough) then try removing 3rd party (or home grown) packages 1 at a time until it is fixed. Then you at least know which package us causing the trouble.

Once you know what the troublesome package is, you can actually debug the design time code & behavior of the component in Delphi. Just set the Delphi exe as the debug application, and then Delphi will launch another instance of Delphi in debug mode. Reproduce the steps that cause the failure, and hopefully you will get a good idea of what code in the package is causing the problem.

Good luck!

Jim McKeeth
While this would be normal operating procedure for me, I don't think it'll be possible in this case. We have too many packages that get used by our applications. I've been whittling down at the number of packages and controls needed, but we still have a lot from previous developers here just installing whatever works without planning things out.
Tom
+1  A: 

Just a thought; pikcing up one of your comments about you having D5 and D7 installed, I'd suggest;

uninstall D7
uninstall D5

reinstall D5
install D5 3rd party components
service pack D5
reinstall D7
install D7 3rd party components
service pack D7

then try again, having done the trick of deleting all the .DCUs in your own project directories.

In my experience I've always been careful to stick to installing them 'in numerical order' and if one needs to be removed, I usually end up removing them all before I start reinstalling.

robsoft
This has been done in the past. We don't really need D7 anymore, the only use we had for it was an office plugin that we can re-do in Visual Studio now. I know I should remove D7, but I may be getting rid of this old (7 years) machine and getting something newer. Not sure yet though.
Tom
A: 

Which OS are you using? If it's Windows 7, perhaps there are incompatibilities with Delphi 5, since it's a bit long in the tooth now. Perhaps you could try running Delphi 5 in a XP VM.

Alan Clark
We're only using XP here.
Tom
A: 

Since you had no problems with Delphi 7, is there any reason for not migrating this application to Delphi 7? It shouldn't be difficult to do, unless you have some third party components with no source.

Steve
lots of 3rd party components, only one delphi 7 license (we have two developers currently), and in order to get some of our components working, we'd have to purchase new versions or find replacements.
Tom
A: 

GExperts ToDo list window... close it or any other GExperts Windows.. Watch the Task Manager for memory increasing and then stopping after you close any windows.

George