Yes, I'm using it, but it really seems like an artificial way to get an entity field's displayed contents.
I'll explore your example. Keith - CDI > On Apr 30, 2020, at 3:45 PM, lists via 4D_Tech <4d_tech@lists.4d.com> wrote: > > Did you actually test this?, any kind of a get pointer on a form object > having a dot notation source will return a Nil pointer, regardless of the > name matching or not. > > If you are using matched names, you could use the following: > > Form[Object get name(object current)]:=DoWhatever(Form[Object get name(object > current)]) > > But that is not quite what we need to be truly generic.... > > Lahav > > -----Original Message----- > From: 4D_Tech <4d_tech-boun...@lists.4d.com> On Behalf Of kculotta via 4D_Tech > Sent: Thursday, April 30, 2020 2:29 PM > To: 4D iNug Technical <4d_tech@lists.4d.com> > Cc: kculotta <kculo...@icloud.com> > Subject: Re: Object notation replacement for use of Self in a script — v18 > > This example does not avoid having to carefully name form objects and the > form object must have "matching" variable and object names: variable > entity.MyName with its object name of "MyName" > > // the object method > a_test (OBJECT Get name(Object current)) > > // a_Test > $ent:=OBJECT Get pointer(Object named;$1)-> $s:=$ent[$1] > ALERT($s) // the value entered into the text area > > Keith - CDI > >> On Apr 30, 2020, at 2:54 PM, Chris Belanger via 4D_Tech >> <4d_tech@lists.4d.com> wrote: >> >> I don’t wish to imply that I ‘prefer’ pointers; in fact, I am not using a >> single process variable, interprocess variable, or any other ‘vestiges’ of >> 4D Classic. I am ‘fully committed’ to object notation. I also use Storage >> extensively for system-wide values, and really love it. >> The problem I describe is that I need a way to generically ‘get’ and ’set’ >> the value of an object (meaning an entry variable on the form). >> >> 1) A variable is placed on the form. It’s “variable or expression” is: >> Form.LB.Browser_JobForms.en_edit.RigFrom. It has an object name of >> “enLSDFromRigDispatch” >> >> I have given it this name because it gives me a simple methodology to >> SHOW/HIDE a whole group of objects on the screen with OBJECT SET >> VISIBLE(*; “enLSD@“;…) >> >> Now I wish to use a standard project method to ‘pretty-format’ this variable. >> With ‘4D Classic’ this is easily achieved by making a project method that >> takes a POINTER in $1. >> The OBJECT SCRIPT would be something simple, like: >> PRETTY_FORMAT(Self) >> [PRETTY_FORMAT, given Self, would be able to get at the CONTENTS of >> the variable and do any formatting options needed] >> >> With ‘4D DOT NOTATION’ … >> — How do I create a simple OBJECT SCRIPT that would do something >> similar to that in 4D Classic? — I don’t feel that I should have to resort >> to using the ‘variable or expression’ name in every single script; because >> what happens if I change that variable for some reason and it totally screws >> up the object script? And it also makes it very complicated. >> THE OBJECT METHOD should be something as simple as: >> PRETTY_FORMAT ( Object Get Name ) —— instead of Self >> >> The PRETTY_FORMAT( ) should be able to get at and set the value of the form >> object from that name. >> >> Alternatively, if one wants to not bother having scripts for every input >> variable that needs PRETTY_FORMAT, they could just do it in the FORM METHOD: >> Case of >> :( Form event code = on load ) >> Form.col_toPrettyFormat:= new collection ( Object Name 1, Object Name 2 >> ) … // objects that need to be ‘Pretty Formatted' >> >> : ( Form event code = on losing focus ) >> $curObjectName:= Form Event.objectName >> … see if is in the list of .col_toPrettyFormat … >> PRETTY_FORMAT( $curObjectName ) >> >> … >> >> So how would one implement something like: >> PRETTY FORMAT ( Object Get Name ) in a script; or PRETTY FORMAT ( >> Form Event.objectName ) >> ??? >> >> Thanks, >> Chris >> >> p.s. what you describe, Keisuke, is in 4D v18r3; the ability to create >> classes. That is very intriguing and a necessary development in 4D, as is >> C_VARIANT( ). >> If one wanted to be able to have the script be: >> >> (Object get name).prettyFormat How would that be achieved? >> >> Even if in the script one could use “This”, but it is null. >> I think that ’This’ should be perfectly valid to use in an OBJECT SCRIPT, in >> a TRIGGER (referring to the record/entity being operated on), etc. But it is >> not, and I have trouble understanding why not. >> >> >> >> >>> On Apr 29, 2020, at 10:14 AM, Keisuke Miyako via 4D_Tech >>> <4d_tech@lists.4d.com> wrote: >>> >>> my feeling is that generic coding is very much possible in object >>> notation, but we need to accept that the approach is different. >>> >>> if you prefer to use pointers such as "Self", I think it's best to >>> avoid object notation, at least if your goal is to make the code >>> generic. >>> >>> it's not a defect of object notation, but the way to write generic >>> code is different. >>> >>> if you want to make your code generic in object notation, I think you >>> need to fully commit. >>> >>> what I mean by that, is that you need to think of objects and classes, >>> properties and methods. >>> >>> basically, instead of >>> >>> doIt(Self) >>> >>> you would write >>> >>> $obj.doIt() >>> >>> where the doIt() formula works on "This". >>> >>> in my opinion, to take full advantage of object notation, it is >>> pretty much mandatory to use >>> >>> This >>> Signal >>> Formula >>> Form >>> >>> extensively, as well as >>> >>> Storage >>> New shared object >>> New shared collection >>> >>> strategically. >>> >>> simply replacing interprocess/process variables with object notation, >>> may semantically look like object based coding, but at that level you >>> may be losing major advantages of classic code, while not gaining >>> much from what the new way of coding has to offer. >>> >>>> On Apr 29, 2020, at 14:55, Chris Belanger via 4D_Tech >>>> <4d_tech@lists.4d.com> wrote: >>>> And v18r3 does not even have a solution to this in its documentation. >>> >>> ********************************************************************* >>> * >>> 4D Internet Users Group (4D iNUG) >>> Archive: http://lists.4d.com/archives.html >>> Options: https://lists.4d.com/mailman/options/4d_tech >>> Unsub: mailto:4d_tech-unsubscr...@lists.4d.com >>> ********************************************************************* >>> * >> >> ********************************************************************** >> 4D Internet Users Group (4D iNUG) >> Archive: http://lists.4d.com/archives.html >> Options: https://lists.4d.com/mailman/options/4d_tech >> Unsub: mailto:4d_tech-unsubscr...@lists.4d.com >> ********************************************************************** > > ********************************************************************** > 4D Internet Users Group (4D iNUG) > Archive: http://lists.4d.com/archives.html > Options: https://lists.4d.com/mailman/options/4d_tech > Unsub: mailto:4d_tech-unsubscr...@lists.4d.com > ********************************************************************** > ********************************************************************** > 4D Internet Users Group (4D iNUG) > Archive: http://lists.4d.com/archives.html > Options: https://lists.4d.com/mailman/options/4d_tech > Unsub: mailto:4d_tech-unsubscr...@lists.4d.com > ********************************************************************** ********************************************************************** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **********************************************************************