BTW, we don't do it as a tool-tip. We also don't create the object as a formset, rather just a form.
We have a class that we call "RibbonHelp", with one label, one image and 3 OLE fields (as we wanted to be able to use formatted text).
In the Init of the form we have:
LPARAMETERS lnTopWindow, lnLeftWindow, lcCalledFrom, lcButtonPicture, lcHelpString
This helps us position the help window, and passes in where it's called from (so we have the caption of the object), the image used in the object we've "mouseentered" into, and the help string (name of the object which is tied to the table we use for storing the individual help items).
This allows us to have a separate help form as well too, where we can edit/add new help items any time we want. The ONLY thing we have to know is the name of the object (as passed in by lcCalledFrom).
Then in the Got Focus of the object (in this case our ribbon button options), we call:
DO FORM RIBBONHELP WITH OBJTOCLIENT(This.Parent,1)+OBJTOCLIENT(This.Parent,4)+2, OBJTOCLIENT(This,2), This.Buttonlabel1.Caption, This.buttonimagebase1.Picture, (This.Name)
OR
DO FORM RIBBONHELP WITH OBJTOCLIENT(This.Parent,1)+ThisForm.Top+OBJTOCLIENT(This.Parent,4)+2, OBJTOCLIENT(This,2), This.Buttonlabel1.Caption, This.buttonimagebase1.Picture, (This.Name)
(This is braceted code that determins what "level" you're on, as this is all in a TOP LEVEL FORM, so may be there, or may be in a child form. So these two are needed to have the association correct, and the OBJTOCLIENT sets the orientation proximity to the object your "help" is on.
It takes a little patience, and a little cleverness in the process as a whole, but stick with it, and you'll have a nice looking tip help, instead of just the "Tooltip Help" text.
I've attached a screen shot, where the mouse is on the icon "Invoices" in the ribbon bar. (The mouse pointer doesn't appear in the screen shot, because Windows doesn't capture it, but it is there). The small window you see just below the ribbon bar is the result of the class "RibbonBarHelp" that takes the name of the object's caption (Uses it as the title bar in this case bold Invoices, the icon image from the button (uses it below the name as the image for the help), then looks up the objects name in the help table, and produces the 3 blocks of text you see there, based on what is in it. The second block is sometimes empty, so the form will resize when it's not there. If block 3 is empty, it will always show "F1 For Help" by default.
Best Regards,
Scott
MSc ISM, MIET, MASHRAE, CDCP, CDCS, CDCE, CTDC, CTIA, ATS
"I try to be nice, but sometimes my mouth doesn't cooperate.