7 ms·
Mastering Delphi 5 2025 Annotated Edition Is Now Complete
- markus_zhang 2y agoInteresting. Is it still runnable on Windows 10/11? I guess it would be still fun to use Delphi for personal projects.
- okanat 2y agoWindows doesn't break backwards compatibility unless it is absolutely worse to keep it around. Think about old SMB protocol that caused security issues. The old Delphi programs continue to work since both the API design is more future-proof and Microsoft did a mind-boggling amount of work to keep ABI stable.
- chungy 2y agoI recall some very nasty hacks and often-won't-work-at-all issues in trying to get Delphi 6 to run on Vista or Windows 7. Windows breaks backwards compatibility more often than "never".
- magicalhippo 2y agoI would be surprised if Delphi 5 ran without a hitch on Windows 10/11. On the other hand, I'd also be surprised if the code couldn't be ported as-is, with just some minor tweaks if any, to the latest Delphi release (released this month). The transition to Unicode strings was a breaking change that did have some impact, but if the code used string manipulation routines instead of direct byte manipulation it should work without any change.
- marcocantu 2y agoI rebuild a large number of demos with no change. Well, the UI looks date, you need to manually enable HighDPI (one checkbox away), do a few tweaks. The IDE plugins, those are broken. And some libraries don't ship any more.
- magicalhippo 2y agoThat's more or less what I expected. I've recompiled some older D3 stuff in modern Delphi and most just works. The ones that were really troublesome used third-party components.
- bruce511 2y ago>> I would be surprised if Delphi 5 ran without a hitch on Windows 10/11 I'd be surprised if it didn't. Not Delphi, but I've been helping a client update their Windows program, from a compiler which shipped in 1998. Their program, with that compiler, runs just fine on Windows 11. The backward compatibility of the Win32 API is such that I regularly use programs last compiled 20 years or more ago.
- magicalhippo 2y agoMicrosoft sure has done a great job, but I have experienced some issues around Program Files and registry virtualization, along with UAC. I suppose if you run it as admin and/or install it outside Program Files it'll make it a lot less troublesome. So, not unexpected, but I'd still be mildly surprised.
- chungy 2y ago> some issues around Program Files and registry virtualization, along with UAC. Now that's rattling a thing in my brain. I recall disabling UAC was one of the more consistent ways to get Delphi 6 to even run on Windows 7, and even then it wasn't a guarantee. Yeah, I had the displeasure around 2009-2011 of trying to get an old IDE version running on then-current versions of Windows, with multiple Vista and 7 computers in the office. It ran fine on Windows XP, but newer OSes were not so lucky. Perhaps the solution was to purchase a newer Delphi, but that avenue wasn't sought after.
- tracker1 2y agoYeah... I saw a lot of poorly written apps using localized data in the application's directory, when they started locking down Program Files, all kind of bugs started to pop up. I don't blame MS much, they had some compatibility shims in place, but it was still troublesome. Mostly blame the early app devs for not understanding separation of the application/libraries and the data the app uses/manipulates.
- jchw 2y agoIt's more hit or miss than you might think. If you're just using mostly basic parts of the Win32 API then it is basically about as solid as any backwards compatibility ever has been. The fall off occurs as you veer off into deeper holes: - Multimedia software and games tend to hit on areas of Windows where compatibility is far from perfect. - Even 32-bit software would sometimes have random Win16 binaries, and those are not emulated; I don't blame Microsoft or anything, but they could support it if they wanted to. (Understandably, they do not.) - Software that uses truly obsolete Windows components may no longer work. AFAIK .NET Framework 1.1 hasn't been supported since Windows 8. Old ActiveX and COM components can also be a problem. This has led to some situations where you might actually have better luck running the old software under Wine and Linux than modern Windows, especially for some older games. It's not that Microsoft didn't do immense amounts of work here, but in practice there are some holes I've run into.
- badsectoracula 2y agoWas it Delphi or the installer? I do not have Delphi 6 but i have Delphi 2 and while the installer doesn't work out of the box (IIRC you can make it work with otvdm which can run 16bit programs on 64bit windows) you can simply just copy the files from the CD and it'll work. Here is a screenshot from ~5 years ago when i was playing around writing a Quake 1 level editor in Delphi 2 under Windows 10[0] (i switched to using Linux as my main OS soon after and converted it to Lazarus[1]). [0] https://i.imgur.com/I48gyMv.png https://i.imgur.com/I48gyMv.png [1] https://i.imgur.com/7MSH98p.png https://i.imgur.com/7MSH98p.png
- markus_zhang 2y agoHey this is interesting. Did you write the rendering code in Delphi too? Did a bit of search, is it QuARK?
- badsectoracula 2y agoYes the rendering code is in Delphi too. It uses an OpenGL control i wrote some years ago[0] which include OpenGL bindings for Delphi 2 (i haven't tested later versions). The control is actually a conversion of one i made for Borland C++ Builder [1]. It is not QuArK, though AFAIK QuArK was made in Delphi too. There have been a few other Quake editors made in Delphi, like the qED Quake Editor which was one of the earlier Quake editors (the author wrote a book about quake mapping too[2]). [0] http://runtimeterror.com/tech/dglvp/ http://runtimeterror.com/tech/dglvp/ [1] http://runtimeterror.com/tech/bcbgl/ http://runtimeterror.com/tech/bcbgl/ [2] https://archive.org/details/unofficial-quake-level-design-handbook https://archive.org/details/unofficial-quake-level-design-ha...
- markus_zhang 2y agoThanks, I like your website BTW. It reminds me of the 90s.
- hnthrowaway0315 2y agoMan I love it. Back in 1999/2000 I was very into Quake mapping and Half-Life mapping. I didn't make any good maps but the community was great. I remember talking to other mappers on ICQ every night. I believe the community is still thriving.
- Zardoz84 2y agoShould. Visual Studio 6 / Visual Basic 6.0 keeps running on Windows 10/11
- gmueckl 2y agoMS has actively maintained compatibility between the VB6 runtime and Windows.
- deleted 2y ago[deleted]
- lelanthran 2y ago> I guess it would be still fun to use Delphi for personal projects. Like many of the other commenters here, I use Lazarus for Delphi projects in 2025 (Not just personal projects, but business projects too). I don't really like the language too much, but: 1. Pascal (or Object Pascal) is very readable compared to almost anything else I've used[1]. I can come back to code from 2 years ago and spend a few minutes to context switch back into the language. 2. The language gotcha's are a small enough pain point that they are outweighed by the advantages of the type creation. I like being able to create a ranged integer type, which is then enforced by the compiler. 3. For most stuff, the majority of my logic is written using opaque types in C and then simply linked into the Lazarus GUI. I originally started using strong isolation and decoupling in C to enforce typing guarantees, but a side-effect of this is that it makes it exceptionally easy for other languages to reuse the program logic. [1] I've been programming for money since the mid-90s, so you can assume that I've used almost everything that was mainstream (or top 10 in terms of popularity) each year since 1995.
- theamk 2y agothe blog does not load to me, but is this really "Delphi 5"? As in Borland Delphi 5 "Argus" released in August 1999 which introduced XML support and ADO databases?
- Tomte 2y agoYes: "I've been creating a free to download edition of my classic "Mastering Delphi 5" with footnotes indicating what is different today"
- marcocantu 2y agoSorry, the blog has hiccups with large traffic... Yes, this is a book on Delphi 5 I made available for free... but with hundreds of notes indicating what has changed and what is still relevant. A lot of content is applicable to Delphi 12.3, released this month!
- FeistySkink 2y agoI feel like Delphi, along with maybe VB6 and WinForms, have been the pinnacle of easy UI development, and things have gone significantly downhill since then. Especially on the web side, where even a single view sometimes requires having multiple unrelated dependencies (packers, builders, transpilers, etc.), often implicitly-configured to produce output, in head-space. And due to this dependency hell, when porting a project like this to a new platform, or just getting it to run, a slight change in the environment silently breaks the build.
- okanat 2y agoIt is the result of cheaping out by the entire tech industry. Responsive design to support multiple resolutions and pixel density was extrapolated to use a single framework (HTML+JS+CSS) for every single device that exists. Except for a few, most businesses deploy Web based apps on browsers, desktop apps and mobile phones. Usually from the same monorepo. Add developer laziness and unnecessarily tight deadlines, we end up in the current situation.
- tracker1 2y agoThese days, I'd say Flutter is the closest alternative to something like VB6 or Delphi. While I get the aversion, HTML+CSS is a pretty good combination for layout and there are efforts towards application tooling for other languages. That said, I don't dislike JS/TS nearly as much as some on here. It's a highly expressive language that's flexible enough to get things done in a number of ways. And yeah, the overhead is kind of crazy, especially when devs bring in massive dependency chains. As a whole, it's still one of the better options for getting an application "everywhere".
- jksmith 2y agoOne reason for this is when the big players move their business models over to taking your data and renting it back to you, there's no profit motive in pushing state-of-the-art ux when they just give their apps away to act like honeypots. MSFT gives their stuff away if you get on Azure. Atlassian charges 14 bucks a seat if you use their cloud. Lots of people who use this stuff have a laptop plus a bigger monitor their company bought to get their work done and it's like staring into an empty desert every day.
- michael-ax 2y agoCongratz Marco!
- pjmlp 2y agoMany thanks Marco for providing this.
- marcocantu 2y agoThank you, it was a nice project, partially walking down the memory lane, but also checking how many features in that version of Delphi are still core today -- not just for the product but for the industry
- fuzztester 2y agoWhich Delphi version(s) can the book be used with? I like Delphi and FreePascal and Lazarus and have used all of them a little, now and then, to create some small personal and paid business apps, Delphi in multiple versions with gaps between versions, from 2 onwards until the 'Berlin' version, IIRC. And yes, thanks, Marco, for making this book available. I had bought a copy of one of your Delphi books around the 3 to 5 version timeframe, cannot remember which version right now. Also, I had downloaded your Object Pascal Handbook a few years ago, which is a great resource, because we devs need to know our programming language well too, not just the IDE or the libraries, which is what some book authors focus on. Thanks for that too. Need to set aside some time to do some more Pascal work for fun and profit.
- jlampa 2y agoMemory lane, indeed! For me, as well - 25 years ago, I translated the Delphi 4 version of this book to Polish - I'm happy to see that both you and Delphi are still going strong!
- WillAdams 2y agoIs this applicable to: https://www.lazarus-ide.org/ https://www.lazarus-ide.org/
- magicalhippo 2y agoWhile not exactly 1:1, the vast majority should be. The Free Pascal language used by Lazarus is very similar to Delphi's Object Pascal[1], and the Lazarus Component Library[2] is modeled to closely match Delphi's Visual Component Library. [1]: https://wiki.freepascal.org/Object_Pascal https://wiki.freepascal.org/Object_Pascal [2]: https://wiki.freepascal.org/LCL https://wiki.freepascal.org/LCL
- fiddlerwoaroof 2y agoI’ve used Lazarus a bit and it mostly replicates the APIs and experience of using Delphi in this timeframe
- jksmith 2y agoYep, I'll have a major rich gui workstation client/server package with basic D365 functionality coming out in I hope about 8 months. Win, Linux, hopefully Mac, and browser. The browser version is definitely legacy gui compared to the native versions, just because it's browser.
- lelanthran 2y ago> Yep, I'll have a major rich gui workstation client/server package with basic D365 functionality coming out in I hope about 8 months. What's D365?
- jksmith 2y agoMSFT Dynamics 365. It's a low/no code platform.
- visarga 2y agoI loved Delphi 1 ages ago but I won't fork thousands of dollars for a language.
- zerr 2y agoAgree. Making everything free (including the freedom, e.g. MIT license): SDK, cmdline tools, etc... And only charging for IDE/RAD environment would enormously boost the language popularity. The same goes for Eiffel.
- lproven 2y ago> I won't fork thousands of dollars for a language. Lazarus: https://www.lazarus-ide.org/ https://www.lazarus-ide.org/ FPC: https://www.freepascal.org/ https://www.freepascal.org/ Cost: $0.
- lwn 2y agoThis book was a great help to me years ago, and I still have a hard copy lying around. It's wonderful to now have a digital edition as well. I often look back on my time with the Delphi IDE with fond memories—though, thankfully, the bad ones seem to fade faster.
- CodeCompost 2y agoDelphi was nice, but the community was horrible to me, accelerating the move of my company to C#.
- t00 2y agoI have exactly opposite experience, Delphi was awful UI, verbose language experience, with hops and tricks and a ton of Win32 rendering to do simple controls like a ComboBox with checkboxes. Yet the community was brilliant, always helpful and SO questions answered the same day!
- tomcam 2y agoI’m a bit surprised by that! Can you tell us a little bit more?
- earth-adventure 2y agoReally cool seeing you here Marco, as a teenager I got into Delphi and a part of that were your books (and some local Delphi forum). So thanks for being part of my 14 year old self spiraling into programming!
- mikewarot 2y agoI'm looking forward to using this as the missing documentation for Lazarus
- Havoc 2y agoDelphi 5 was awesome. From memory it was the last version where you could do jump to definitions on tons of the systems/built in code. 6 had that obscured somehow
- kopirgan 2y agoBorland was really a pioneer, made great stuff.. Sad they couldn't survive the Microsoft onslaught both in terms of product and tactics.
- tomcam 2y agoIt was mostly unforced errors. They tried to compete directly with Microsoft by buying word processors, databases, making a spreadsheet, etc. It was pretty clear to me even at the time. Microsoft, on the other hand, is severely underrated for its ability to just not fuck up too often.
- kopirgan 2y agoYes it's interesting how many just did that.. Lotus, Novell. But iirc there were also some bare knuckle stuff involving C++ which was supposedly vastly better than VC but not given the right support as OS vendor.
- magicalhippo 2y agoThey made some serious strategical blunders that were entirely unforced, and they did so at a critical time. They drank every last drop of the enterprise kool-aid, and put Delphi on life support when spinnig it off failed[1], just as Microsoft got some .Net momentum going. A lot of Delphi developers saw the signs and jumped ship during those years. [1]: https://en.wikipedia.org/wiki/CodeGear https://en.wikipedia.org/wiki/CodeGear