Ed, 
thanks for this info. It has certainly helped to clear things up in my mind! I 
come from procedural programming and sometimes I trip up over these things 
that probably seem so logical from an OO point of view.

Dennis

Op Wednesday 19 December 2007, schreef Ed Leafe:
> On Dec 19, 2007, at 9:19 AM, Dennis Meulensteen wrote:
> > I know that I can use the Class Designer's Object Info panel to
> > view the
> > relationships between graphical objects. I know how to use
> > self.Form to get
> > to those objects and their properties.
> >
> > But how on earth do I create a button that calls a BuzObj's
> > SetWhere method?
> > Dabo keeps telling me there's no such global object whenever I call
> > the
> > BusObj by name. Whatever I prefix it with doesn't seem to help
> > either, I've
> > tried self.Form and such, but no luck.
>
>       The concept that's tripping you up is that you are trying to make a
> button smarter and more responsible than it really should be. Buttons
> and other UI elements should simply display the information they're
> given, and report user interaction where appropriate to the "proper
> authorities". In 99% of the cases, UI elements should respond to user
> events by calling a form method.
>
>       The form is a lot "smarter" than any of its controls, and
> "knows"about its bizobjs and how to talk to them.
>
>       So in your case, the button should only tell the form that it has
> been clicked. After that, the button's job is done. It does this by
> calling the appropriate form method; it is in this method that you
> handle the communication with the bizobj.
>
>       While typing this, I see that John has responded to your question,
> and with all due respect, his answer is wrong. Buttons should never
> "know" about bizobjs, much less try to directly manipulate them. They
> should talk with the form, and occasionally to sibling controls, but
> never beyond that.
>
>       This may seem like an odd way to do things, but it is a standard
> software Design Pattern named "Chain of Responsibility". Essentially,
> it means that each object knows what it can handle itself, and where
> to pass any other requests that it can't handle. In this case, the
> button tells the form that it's been clicked; the form uses that
> information to tell the appropriate bizobj to set its Where clause to
> the current value; the bizobj uses that information to update the
> appropriate cursor with the filter expression passed by the form.
>
> -- Ed Leafe
> -- http://leafe.com
> -- http://dabodev.com
>
>
>
>
[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/dabo-users/[EMAIL PROTECTED]

Reply via email to