-
Content Count
5 -
Joined
-
Last visited
Community Reputation
1 NeutralAbout Peter J
- Birthday 01/03/1959
Technical Information
-
Delphi-Version
Delphi 12 Athens
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
Thanks. I've seen the latter but the github repo is new to me - I've starred it. Not 1:1 as you say, BUT, very helpful for updating a web page where I try to maintain a list of Delphi features and the versions of Delphi where they were introduced.
-
Thank you. Target vs run on - to clarify, I mean the OS that the compiled application will run on. I was thinking that the page was talking about minimum Windows version for the generated applications, not the OS required for the IDE. I've been assuming it was related to the Windows API calls that the VCL etc depended upon.
-
Thank you very much - that's exactly what I needed. I'll take note of the SP2 requirement and make it a minimum. No, I don't have machines with XP at all these days. Yes, interested in the lowest version. I do like to make my open source apps work on as many version of Windows as possible, even though I only use Win 11 myself. The reason for asking is that I've got some old library code that works around APIs missing from older Windows versions, or falls back to older APIs where necessary. This stuff was originally written to be compiled on Delphi 4 (I think) and ran on Win9x and WinNT. I want to update it to be able to be compiled with Delphi 12 back to XE, and possibly 2009 as the oldest Unicode Delphi. There's no point in keeping the API code that only exists on Windows versions that XE compiled apps won't run on! My interest in getting info back to Delphi 2009 is because I still have a license for it & I have a soft spot for older Delphis. I still use XE a lot, and still used Delphi 7 until a couple of years ago!
-
Peter J changed their profile photo
-
In XE2 and later, for reasons of backward compatibility I guess, you can get away with not using fully qualified unit scope names for the RTL/VCL etc if you add the required prefixes to project options (Delphi Compiler section, Unit scope names field). Certain default prefixes are added by Delphi when you create a new project. For a new VCL application in Delphi 12.2 I get: Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell That's probably why the "mixed" code works, but it's asking for trouble IMHO. I worry about possible conflicts using default unit scope names, so I usually delete all the default prefixes from project options, which enforces the use of fully qualified scope names. In library code that needs to compile with compilers either side of XE2, where it can't be guaranteed that the user will have any default unit scopes defined, I use something like: {$UNDEF RequiresUnitScopeNames} {$IFDEF CONDITIONALEXPRESSIONS} {$IF CompilerVersion >= 24.0} // Delphi XE3 and later {$LEGACYIFEND ON} // NOTE: this must come before all $IFEND directives {$IFEND} {$IF CompilerVersion >= 23.0} // Delphi XE2 and later {$DEFINE RequiresUnitScopeNames} {$IFEND} {$ENDIF} then in uses statements, for e.g.: uses {$IFNDEF RequiresUnitScopeNames} Windows, Classes; {$ELSE} Winapi.Windows, System.Classes; {$ENDIF} It's a pain, and it's easy to forget to add both versions of a unit name, but it works for me. BTW the $LEGACYIFEND stuff is a work around for problems I encountered with the way $IFEND and $ENDIF work in XE3 and later! Your mileage may vary.
-
I'm trying to find out which are the oldest versions of Windows that different versions of Delphi could target, going back to Delphi 2009. Embarcadero have documented as far back as Delphi XE4, which required Windows XP SP2 (32-bit only) or Windows Server 2008 as a minimum. Googling hasn't turned up any more info, so far. So can anyone help with Delphi 2009 through to XE3 please? I'm particularly interested in XE, because I still use it for some jobs. EDIT: For clarity, I'm interested in the minimum versions of Windows that programs compiled by the various versions of Delphi will run on, not the Windows version that the IDE will run on. Thx