Blogs

I’ve been Sent to Coventry!

By Uniface Test posted 03-05-2013 06:00

  

(Original creator: GMockford)

To a brit to be sent to Coventry is a phrase used to punish someone. According to Wikipedia: To send someone to Coventry is a British idiom meaning to ostracise someone, usually by not talking to them. Which is funny considering that the UK user group was held in that fair city a few weeks ago and I was directed to attend?  I wondered, was someone trying to tell me something?  To anyone who has attended any of this year’s User group workshops,  attendees will find within the sample application a kind of "Easter egg" or one of those “undocumented features” put to good use as a technique to manipulate fields and frames. When assembling the sample last September I didn’t think much about revealing how it works, but during and after user groups I’ve received reactions that vary all the way from “OMG! You can’t tell anyone about that!” to “Brilliant, I’ve been asking how to do that for years!” To which I respond with the classic sales mantra "The customer is always right!”, and apparently customers are asking how it works so it must be right? As its already public knowledge to workshop attendees I thought I’d share with non-attendees. The Easter egg was about programmatic manipulation of splitter bars. Y’know those handles that you can use to attach to fields with which the user can drag and resize stuff with their mouse. Internally each splitter is assigned a name “S0” to “Sn” assigned sequentially as each splitter is added to the screen. Remove one and all higher numbered splitters are renamed. True not exactly optimal, but if you can determine what the splitters internal name is by counting as each is created then you can use “$windowproperties” to programmatically move the splitter to either side of the frame, if you define a vertical bar, or top/bottom of the frame for a horizontal bar.

For example the first vertical splitter (That would be “S0” BTW), you can code: $windowproperties("<formname>","splitbar")="splitbar=S0:MIN”; Move to the left $windowproperties("<formname>","splitbar")="splitbar=S0:MAX"; Move to the right $windowproperties("<formname>","splitbar")="splitbar=S0:RESTORE"; Restores it back to the original position So now you know. Perhaps when considering attendance at the next User Group Conference, aside from the delights of Las Vegas and Coventry you might consider what else you might learn, and who knows maybe there may be another Easter egg next time?

3 comments
1 view

Comments

05-10-2019 07:59

on uli-merkel.de one can find how moving splitbars makes dynamic forms an easy task: ditosplit_demo-9601-130312.zip

05-10-2019 07:59

Please note that moving splitbars is an undocumented and unsupported feature. The Lab is currently working on improvements in the area of resizable applications/windows/containers. Compatibility with this undocumented feature is not a design requirement for that.

05-10-2019 07:59

Hi George,
thank you for sharing the splitbar movements with the public.
Especially the reset is very beneficial , we have seen customers neetly messing up their splitbars without a "magic way" to turn it back to the original position.
Hope this will be included in the helpfile with some of the next patches so it becomes a "documented feature".