Hi Emerson,
I like the simplicity of your approach. Here is my feedback:
1) Objects linked to the splitter are resized with each mouse movement. It will be slow if the objects are containers with many complex controls inside. How about doing the resize only on mouse-up? (Of course you have to add an extra visible cue to show the splitter movement before mouse-up.)
2) Inside the Moved() method, you said checking variable type is slower than a Try...Catch. The following test code tells us NOT to use Try...Catch. Adding a property as a flag for checking if GetReference() has already been run may be the best way.
nLoops=5000
oObj=CreateObject('Empty')
AddProperty(oObj,'p')
oObj=Null
nSec=Seconds()
For i=1 To nLoops
If Vartype(oObj)='O'
oObj.p=1
EndIf
Next
?Seconds()-nSec
nSec=Seconds()
For i=1 To nLoops
Try
oObj.p=1
Catch
EndTry
Next
?Seconds()-nSec
Ben