On 31 May 2010, at 16:16, spir ☣ wrote: > I'm converting a few components, first developped in independant programs, > into units. I have 2 issues in the process. > > -1- internal dependency > How can an interface element E0 depend on an implementation element E1?
It cannot, regardless of the nature of E0 and E1. > -2- namespace export > I would like, for some units, to export a single element, namely a namespace > that holds as elements the actual elements of the unit to be exported. I > guess you understand the purpose is to reproduce an import/export scheme > common in some languages: namely that the importing unit can only refer to > imported elements using "qualified names" such as "unit.element". This point > is good, in my opinion, both for code clarity and for prevention of namespace > pollution. > It seems a possibility to do that in pascal is to define everything in the > implementation part, except for a single variable of a record type, used as a > namespace. Then populate this variable in the initialization section. An > issue is, again, that the namespace variable's own type certainly needs to be > declared in the interface part. > Are there better ways to achieve this goal? No. > OT detail: Seems I cannot use named types for open array parameters. For > instance > procedure (structs : array of Struct); > is accepted, but the following not > type StructArray = array of Struct; > procedure (structs : StructArray); These are two different things. The first is an "open array" and the second is a "dynamic array". You may want to look these terms up in the documentation. > Finally: I found online some very good introductions to Delphi. Can I rely on > the information there to apply to freepascal (I mean in 99% cases)? a) it depends on which Delphi version the introduction uses. Generally, FPC supports most things from Delphi 7 and earlier. b) make sure you use {$mode delphi} if you want to use code written for Delphi. > For instance, the first point I met is a literal notation for records "r := > (a:1 ; b:2);". But fpc refuses that to me :-( (Same result with array > notations.) FPC indeed does not support this, and I'm not aware of any immediate plans to add support for this. Jonas_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal