On Mon, 25 Nov 2002 16:31:51 +0100, you wrote in message
<MABBLJDICACNFOLGIHJOEEEADBAA.phgrosjean@sciviews.org>:
There will certainly be some cases where the
programmer would like to use specific widgets, or exotic features. For
instance, I have some ideas on how to implement dynamically a dialog box
composed of standard widgets in Visual Basic, but it is not obvious to me
how I could dynamically add some exotic OCXes at run time!
I think the way Delphi handles this is good. It doesn't use XML, it
uses its own language, but I think there's a 1-1 map to XML. A
typical form definition file might look like this:
object Form3: TForm3
Delphi calls windows "forms". This is a dialog box declared to be of
type "TForm3", which I just created. The compiler would see the
declaration and would know what TForm3 means.
These are a number of properties of the form that have been set to
non-default values.
object Button1: TButton
Left = 168
Top = 32
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
end
This is a button that has been added to the form, with some
non-default properties. Delphi knows that TButton is a button,
because it has been registered with the system. If I wanted an OCX,
I'd register TMyOCX with the system, and it would be allowed here too.
end
If other components had been added to the form, their descriptions
would follow the button definition. Some components can have other
components nested within them.
P.S.: Duncan, I recently showed your RGL (R interface to OpenGL) at a
R/PASTECS formation,... and I got a lot of Aahh! and Oohhh! By the way, in
the choosen example, some particular features in the data set where only
revealed by playing with the 3D graph in RGL, but not, for instance in a
contour plot [image() followed by contour()].
Sounds great! By the way, there's some progress on getting it past
being just a "prototype". I'm hoping to get some help translating to
C++ early next year, at which point I can clean up some ugliness in
the original version, make it available on more platforms, and start
adding requested features to it.
Duncan Murdoch