views:

555

answers:

6

Over the past 15 years or so I've written all the software that runs my medical practice in Delphi 5.

Last week my disk became unbootable/unrecoverable. I have my original D5p disk and all the components backed up but I want to migrate to Windows7. I don't care if my delphi apps look like vista/7; I just want to be able to install it and code on the machine again for maintenance purposes.

  1. are there any tricks to install D5 so it works in W7?
  2. is using a virtual machine really the only/best way? if so, which is suggested?

Thanks in advance.

Larry

[email protected]

A: 

I'm not an expert in the Delphi field any more, but I'm pretty sure you're not going to get D5 running on Windows 7 smoothly. Even if you get it running as such, it's going to give you trouble in the details.

But Windows 7's built-in XP virtual machine is a joy to use, and integrates seamlessly (i.e. you can even have Delphi and your old apps in Windows 7's start menu). I'd say the virtual machine is really the way to go. It's called Windows XP mode and can be downloaded here at no extra cost. You just need Windows 7 professional or better, it won't work on a Home edition.

Pekka
+1  A: 

We do commercial software development using Delphi 2009 in a Windows XP Virtual PC, hosted on Windows 7. Until last year, we were using Delphi 7 on an XP virtual machine on Vista. Both are excellent development platforms.

As far as I can see, there are no downsides to this setup. Under Windows 7, the Virtual XP machine integrates right into the desktop using XP mode. Backups are easy, since the VHD file (Virtual Hard Disk) is typically less than 16 GB. There have been absolutely no issues with stability. And although performance within the virtual machine is somewhat slower than on a native machine, the speed difference is not significant.

My opinion is that this is the best solution, and we have been using it successfully for years. If you have any questions about it, just let me know.

Johnula
A: 

If you have the option of restoring the original system to a working state, I recommend doing that, and the use the "VMWare vCenter Converter Standalone Client" to make a VM of your current system. Then install VMWare on the new PC when it gets here. Now you can simply bring that up under your new PC, and you've got your trusty old PC ready to roll, any time you need it.

Chris Thornton
+1  A: 

I got tired of having to reinstall all my Delphi components whenever I had to setup my machine from scratch/install a new operating system/move to a new laptop, so when I installed Windows Server 2008 (32-bit), I installed Delphi 5 in a virtual machine.

Because of that, when I recently moved to Windows 7, 64-bit, I could use the same virtual machine, no new setup required!

Granted, it is a bit slower, but, hey, this was meant to run on computers a lot slower than they are today.

It's a win/win all the way...

Galdur
+1  A: 

I don't know if this helps, but I run Delphi 7 on 64 bit Windows 7 with no problem.

There are some special steps to installing it, but after that, it works fine.

Check out this site for the details: http://www.drbob42.com/examines/examin84.htm

Although I use VMs for other things, running Delphi inside a VM IMO is a nuisance. So it'll be worth your trying the above. On the other hand, I know developers who swear by VMs for this since they can get such great backup snapshots, as noted by others.

Tom1952
To avoid the problems Bob Swart describes in the article above, you can also simply install Delphi _outside_ program files (in c:\development, for instance). Works fine for Delphi 5 as well. Pay extra attention to what Bob has to say about the .hlp file kb, you'll want to get that help up and running as well.
Paul-Jan
A: 

Two people at work are now running Delphi 5 on Windows 7 64-bit.

There is a problem with some Jedi files, that rely on a particular define (WINDOWS i think), that isn't true in 64-bit environment. In the end the Jedi files are not useing Windows.pas. Code then fails to compile when it can't find declarations such as DWORD.


Also, there is a bug in Delphi 5 compiled code, that is only exposed on 64-bit versions of Windows. If you have Overflow Checking turned on, and anything calls SendMessage, the compiled Delphi code is checking that the BOOL value is not greater than $FFFF.

This is wrong, since BOOL is declared by Win32, Microsoft, and Delphi 5, to be a 32-bit boolean value; in x64 it returns $FFFFFFFF as the non-zero value. It works on 32-bit Windows because Microsoft has to maintain compatibility with 16-bit applications; where BOOL was only 16-bits, returning $0000FFFF. 64-bit versions of Windows are unable to run 16-bit applications (this is because a 64-bit CPU running in 64-bit mode does not support running 16-bit instructions)

In other words: turn off Overflow Checks

Ian Boyd