Hi Alex Thanks for the explanation. Though this really should be mentioned in the documentation. Its a rather obscure call in Family.l which just looks like its creating a Heading. but it turns out to be vital for the application to work.
I notice that there are a few other methods defined in form.l that are not actually documented anywhere. The button helpers I can sort of work. But the choDlg and panel with their long and rather complicated argument lists are somewhat harder to puzzle out. regs Konrad On Thu, Feb 16, 2012 at 8:02 PM, Alexander Burger <a...@software-lab.de> wrote: > Hi Konrad, > >> I've being trying to work out how the Family.l application hooks >> together its database and gui objects together and simply haiing no >> luck. >> >> as far as I unsetad the current Person object is being stored in the >> global variable *ID by the (default *ID (val *DB)) call. > > *ID is used only temporarily, to communicate the object across HTTP > calls as URL parameter. > > The "real" place of the object is normally in the 'obj' property of the > form. The crucial call here is > > (<id> ...) > > '<id>' takes care of storing the object in *ID into the 'obj' property > of the current form, enable or disable the form according to certain > rules, and lock the object if necessary. > > >> but then none of the gui calls seem to reference this object at all. >> So how is one hooked up to the other. > > There the crucial item is the +E/R prefix class (as you noticed). It > takes care of "connecting" the displayed value in the GUI component to > the internal DB object's attribute. > > >> Also what are the initilisation arguments to the +E/R prefix class > > They take the form of a cons pair, with the attribute (relation) in the > CAR, and an executable expression giving the object in the CDR. > > Whenever +E/R needs to read a value from the object into the GUI, or > write changes from the GUI to the object, it evaluates the 'exe' in the > CDR to obtain the DB object. > >> supposed to mean '(nm : home obj) . The first one appears to be >> relation name but what does the rest of the lsit do. I've tried > > So 'nm' is the relation (e.g. the person's name), and '(: home obj)' the > object expression. As the object is stored in the 'obj' property of the > current form, and each GUI component knows the form it resides in from > its 'home' property, '(: home obj)' means: Get my (the GUI component's) > home form, and from that the object. > >> readin the code and the libraries it imports and re reading the >> Applicaton development document several times but it just seems to >> skip over this point. We have information on DB programming and > > The documentation is not (yet) complete here. It's really a lot of > stuff, and explaining it all would probably be longer than the > implementation itself. I hope this will improve in the future. > > Cheers, > - Alex > -- > UNSUBSCRIBE: mailto:email@example.com?subject=Unsubscribe -- read my mind at: http://the-willows.blogspot.com/ -- UNSUBSCRIBE: mailto:firstname.lastname@example.org?subject=Unsubscribe