[JEDI.NET discuss] Delphi 2k5
Status: Pre-Alpha
Brought to you by:
jedi_mbe
From: Marcel B. <mar...@xs...> - 2004-11-29 15:32:30
|
I've been playing with D2k5 and I'm not happy. Not sure whether it's because I keep overlooking something or because Borland really screwed things up. The problem is (once again) related to namespaces. Borland, in all their wisdom, have decided that the *exported* namespace to an assembly is not the entire unit name, but everything up to the last dot. IOW, all units in Jedi.Core.dll, Jedi.Graphics.dll, Jedi.Persistency.dll and Jedi.Strings.dll will end up in the Jedi namespace for any VS user, but continue to be in our the current namespaces (Jedi.System, Jedi.Drawing, Jedi.IO and Jedi.Strings). So, I thought, not a problem, since we can now assign multiple units to a single namespace. The section in the help says: <quote> Multiple units can be grouped together into one namespace using an extension of the in clause in the project source file. The file name string can list multiple unit source files in a semicolon-delimited list. uses MyProgram.MyNamespace in 'filepath/unit1.pas;otherpath/unit2.pas'; </quote> Now, I've tried it in a package, a program and a unit, but in each case I get a compiler error that the above path could not be found (it treats the entire thing as a single file specification, so it complains it can not find "filepath\unit1.pas;otherpath\unit2.dcuil"). I tried forward and backward slashed, but that didn't make any difference. So, other test: rename units "Jedi.System.Attributes.pas", "Jedi.Collections.InlineEditable.pas" and use that in Jedi.Core.dll. The assembly generates the Jedi.System and Jedi.Collections namespaces, which VS.NET can and will happily use. Next package in Delphi: Jedi.Text. I decided to add the Jedi.Strings unit to the Jedi.Core assembly as "Jedi.System.Strings". Now both the AttributeUtils and StringUtils classes reside in the Jedi.System namespace, for VS.NET that is. For Delphi, the two classes above reside in two different units (ie. two different uses clauses; this problem surfaces when I tried to build Jedi.Persistency which could not find Jedi.System.StringUtils). What the hell?? So I should put in the help file that the StringUtils class in the "Jedi.System" namespace, except for Delphi, where it will reside in the "Jedi.System.Strings" unit. That is ridiculous! So, is it just me? Did I overlook something important? HELP! -- Marcel Bestebroer (Team JEDI) http://delphi-jedi.org Project JEDI Help coordinator JEDI.NET team coordinator |