O$4 - Copy a continer object

Vik Shah Vik at Keys2Solutions.com.au
Tue Mar 17 05:00:05 EDT 2015


Michael,

The jsClient is only in Studio 6.1 (at least the sub windows section of it that I am referring to)

In any event, you have observed the exact behavioural techniques that I’d employ, setting the EDM and the current field tricks. but neither of these techniques will change the way $order of the fields are for that instance of the window, unless you close and reopen the window and make sure that the $cclass.$objs.theObj.$order of that object is made higher before the window is reopened.

The field order is not the same as z order as everyone is discussing here. I really wish it were, but it is not the case.

The only real solution here is to look towards jsClient’s subform fields in studio 6.1.x

Regards,

Vik Shah
Director
Keys2Solutions 


> On 13 Mar 2015, at 23:06, Michael Mantkowski <michaelj at clientrax.com> wrote:
> 
> Yes, the closest I have been able to come to it working is by going into
> Enter Data Mode.  Then what ever object has the focus will come to top.  But
> as soon as you leave the object or get out of EDM it goes back behind any
> object that are higher in $order.
> 
> I don't know anything about the "jsClient".  Is it available in O$4?  Does
> it work on the Desktop side or via the Web Components?
> 
> Thanks,
> 
> Michael
> 
> *********************************************************************
> Michael Mantkowski
> ClienTrax Software
> 1-614-875-2245
> *********************************************************************
> 
> 
> 
> -----Original Message-----
> From: omnisdev-en-bounces at lists.omnis-dev.com
> [mailto:omnisdev-en-bounces at lists.omnis-dev.com] On Behalf Of Vik Shah
> Sent: Thursday, March 12, 2015 10:07 PM
> To: OmnisDev List - English
> Subject: Re: O$4 - Copy a continer object
> 
> Michael,
> 
> Interesting find here, I tried to hack my way around this by modifying the 
> $cclass.$objs.[$cobj().$name].$order.$assign(nextOrder+1)
> 
> inside the evDragFinished event, I can see that the $order is changed, yet
> the field isn’t on top. Now here is where I realised that the instance has
> separated from its base structural design and thus any attempt to reorder
> the fields on the instance will not work. 
> 
> This is different from how the jsClient works, over there the z-order of the
> sub windows can be altered on the fly with/without our involvement. Perhaps
> you may want to try the jsClient subforms.
> 
> Regards,
> 
> Vik Shah
> Director
> Keys2Solutions 
> 
> 
>> On 13 Mar 2015, at 10:27, Michael Mantkowski <michaelj at clientrax.com>
> wrote:
>> 
>> Hi Mischa,
>> 
>> I agree and I have been experimenting with using Subwindows but have been
>> having some difficulties because of what I am trying to accomplish.
>> 
>> What I have created in these ScrollBoxes are what look like Window Frames.
>> Inside that is a Subwindow where I load the various windows a want.  I use
> a
>> master object and create a new one for each "Window" I want to open.
>> 
>> The main idea is to create a "Virtual Desktop" inside a "Master Window"
>> where the user can maintain a single clients records.  There can then be
>> more than one client desktop open at the same time and they can all use
> the
>> same windows but keep them separate.
>> 
>> All nice in theory accept for the "Who Is On Top" issue that I cannot seem
>> to figure out.  Since it appears we can't adjust the $order of objects I
> am
>> not sure I am going to be able to do what I want.  Either that or I will
> be
>> regulated to tiled windows and not allow overlap.
>> 
>> Anyway, these windows can move and resize just like standard Omnis
> windows.
>> But so far I have not been able to figure out the logic for carrying this
>> over into a Subwindow.  (If I grab the Title Bar of the "Window" it
> actually
>> moves within the Subwindow frame instead of the Actual Window the
> Subwindow
>> is part of.  I assume I have to setup my code to carry up through the
>> ScrollBox to the Subwindow.  But so far I have not had a lot of time to
>> figure that out.  But again, even once I do that I think I will run into
> the
>> overlap issue.
>> 
>> What I really wish we in Omnis was the ability to have virtual screen
> spaces
>> where they keep track of their own activity.  Just like Subwindows, but
>> using the complete Window (Title Bars, Boarders, Menus, Etc.).
>> 
>> Michael
>> 
>> *********************************************************************
>> Michael Mantkowski
>> ClienTrax Software
>> 1-614-875-2245
>> *********************************************************************
>> 
>> 
>> 
>> -----Original Message-----
>> From: omnisdev-en-bounces at lists.omnis-dev.com
>> [mailto:omnisdev-en-bounces at lists.omnis-dev.com] On Behalf Of Mischa
>> Sent: Thursday, March 12, 2015 5:52 PM
>> To: 'OmnisDev List - English'
>> Subject: Re: O$4 - Copy a continer object
>> 
>> Hi Michael,
>> 
>> Did some trials on myself because it's an interesting problem ;) but also
>> ended up with $makelist. It seems that sending each object of scrollbox1
> the
>> message to add itself to scrollbox2 does not work. So if you are using it
>> more often, subwindows would be more convenient.
>> 
>> Best greetings
>> Mischa
>> 
>> ---------------------------------------------------
>> T H E   O M N I S   L /\ B     www.omnislab.com
>> ---------------------------------------------------
>> 
>> 
>> -----Ursprüngliche Nachricht-----
>> Von: omnisdev-en-bounces at lists.omnis-dev.com
>> [mailto:omnisdev-en-bounces at lists.omnis-dev.com] Im Auftrag von Michael
>> Mantkowski
>> Gesendet: Donnerstag, 12. März 2015 22:32
>> An: 'OmnisDev List - English'
>> Betreff: RE: O$4 - Copy a continer object
>> 
>> Hi Mischa,
>> 
>> Agreed.  After a lot of hit and miss I came up with this.  Seems to work
>> fine.  But only one level deep.
>> 
>> ;  Copy Main Object
>> Set reference lvOrigRef to $cinst.$objs.Box1.$ref
>> Do $cinst.$objs.$add(lvOrigRef) Returns lvRef
>> Calculate lvRef.$left as 100
>> Calculate lvRef.$top as 100
>> 
>> ;  Copy bobj items
>> Begin reversible block
>>   Set current list lvObjList
>> End reversible block
>> Calculate lvObjList as lvOrigRef.$bobjs.$makelist($ref)
>> Redefine list {lvObjRef}
>> For each line in list from 1 to #LN step 1
>>   Do lvRef.$bobjs.$add(lvObjList.lvObjRef) Returns lvObjRef
>> End For
>> 
>> ;  Copy obj items
>> Calculate lvObjList as lvOrigRef.$objs.$makelist($ref)
>> Redefine list {lvObjRef}
>> For each line in list from 1 to #LN step 1
>>   Do lvRef.$objs.$add(lvObjList.lvObjRef) Returns lvObjRef
>> End For
>> 
>> *********************************************************************
>> Michael Mantkowski
>> ClienTrax Software
>> 1-614-875-2245
>> *********************************************************************
>> 
>> 
>> 
>> -----Original Message-----
>> From: omnisdev-en-bounces at lists.omnis-dev.com
>> [mailto:omnisdev-en-bounces at lists.omnis-dev.com] On Behalf Of Mischa
>> Sent: Thursday, March 12, 2015 5:26 PM
>> To: 'OmnisDev List - English'
>> Subject: Re: O$4 - Copy a continer object
>> 
>> Hi Michael,
>> 
>> I think, the reason why it fails is that the objects are not 'really'
>> contained in the scrollbox (or any other container object), as you can see
>> in the class. Only when the window is instantiated, Studio tells them to
> act
>> as inside objects. You could either try some $sendall magic, or (my
>> preferred way) use subwindows instead - this works because the objects are
>> actually inside the subwindow class.
>> 
>> hth
>> Mischa
>> 
>> ---------------------------------------------------
>> T H E   O M N I S   L /\ B     www.omnislab.com
>> ---------------------------------------------------
>> 
>> 
>> -----Ursprüngliche Nachricht-----
>> Von: omnisdev-en-bounces at lists.omnis-dev.com
>> [mailto:omnisdev-en-bounces at lists.omnis-dev.com] Im Auftrag von Michael
>> Mantkowski
>> Gesendet: Donnerstag, 12. März 2015 16:53
>> An: 'OmnisDev List - English'
>> Betreff: O$4 - Copy a continer object
>> 
>> I am trying to make a copy of a ScrollBox that contains several objects.
>> 
>> Using the code below, I get the scroll box, but none of the items that are
>> in the original.
>> 
>> Am I doing something wrong?
>> 
>> Set reference lvOrigRef to $cinst.$objs.Box1.$ref
>> Do $cinst.$objs.$add(lvOrigRef) Returns lvRef
>> Calculate lvRef.$name as lvRef.$ident
>> Calculate lvRef.$left as 100
>> Calculate lvRef.$top as 100
>> 
>> *********************************************************************
>> Michael Mantkowski
>> ClienTrax Software
>> 1-614-875-2245
>> *********************************************************************
>> 
>> 
>> _____________________________________________________________
>> Manage your list subscriptions at http://lists.omnis-dev.com
>> 
>> _____________________________________________________________
>> Manage your list subscriptions at http://lists.omnis-dev.com
>> 
>> _____________________________________________________________
>> Manage your list subscriptions at http://lists.omnis-dev.com
>> 
>> _____________________________________________________________
>> Manage your list subscriptions at http://lists.omnis-dev.com
>> 
>> _____________________________________________________________
>> Manage your list subscriptions at http://lists.omnis-dev.com
> 
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com
> 
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com




More information about the omnisdev-en mailing list