Scheduler App request

2017-09-15 Thread Keith Culotta via 4D_Tech
I saw the following from an Apple Reseller.  Does anyone have a solution? I can 
forward the info to him.

We have 8-10 trucks on the road every day performing deliveries, installations, 
service calls, etc. For 30 years we have used old fashion pen and paper to 
create a schedule but our scheduling manager is getting overwhelmed with the 
amount of work it is taking.We are looking for a scheduling program, I think 
more advanced than iCal, that could potentially work with Lightspeed. Any 
suggestions?

Keith - CDI
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: SVG Scale

2017-09-19 Thread Keith Culotta via 4D_Tech
Here is a sample with the attributes hard coded: 100 and 2.  Comment out (and 
in) the middle section to see the effect.

$svg:=SVG_New 
$ref:=SVG_New_circle ($svg;100;100;20)

SVG_SET_TRANSFORM_SCALE ($ref;2;2)
SVG_SET_ATTRIBUTES ($ref;"cx";String(100/2);"cy";String(100/2))

vPic:=SVG_Export_to_picture ($svg)
SVG_CLEAR ($svg)

Keith - CDI

> On Sep 19, 2017, at 11:03 AM, Jim Dorrance via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi,
> 
> I am looking for a very quick way to scale a SVG object (circle, rect etc.)
> but not move the center of the object.
> 
> I use:
> 
> *DOM SET XML ATTRIBUTE*($tObjectRef;"transform";"scale(2)")
> 
> 
> And of course, the object is  moved xy*2
> 
> 
> Any ideas how to scale on object but not its position on the cancas.
> 
> 
> Thanks
> 
> Jim
> 
> -- 
> Jim Dorrance
> jim.dorra...@gmail.com
> 4...@dorrance.eu
> www.4d.dorrance.eu
> 
> PS: If you know of anyone that needs an experienced 4D programmer to add
> energy and experience to their team, please let me know. I have
> experience in many areas. Reasonable rates. Remote or Paris only.
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: SVG Scale

2017-09-19 Thread Keith Culotta via 4D_Tech
Sorry, there is also this: SVG_SCALING_CENTERED ( svgObject ; scale {; x ; y} ) 
 
http://doc.4d.com/4Dv16/4D/16/SVG-SCALING-CENTERED.301-3202422.en.html

Keith - CDI

> On Sep 19, 2017, at 11:03 AM, Jim Dorrance via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi,
> 
> I am looking for a very quick way to scale a SVG object (circle, rect etc.)
> but not move the center of the object.
> 
> I use:
> 
> *DOM SET XML ATTRIBUTE*($tObjectRef;"transform";"scale(2)")
> 
> 
> And of course, the object is  moved xy*2
> 
> 
> Any ideas how to scale on object but not its position on the cancas.
> 
> 
> Thanks
> 
> Jim
> 
> -- 
> Jim Dorrance
> jim.dorra...@gmail.com
> 4...@dorrance.eu
> www.4d.dorrance.eu
> 
> PS: If you know of anyone that needs an experienced 4D programmer to add
> energy and experience to their team, please let me know. I have
> experience in many areas. Reasonable rates. Remote or Paris only.
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: FORM SET OUTPUT -> project form

2017-10-16 Thread Keith Culotta via 4D_Tech
I think PRINT RECORD and PRINT SELECTION require a Table Form.  A project form 
is printed with PRINT FORM.

Keith - CDI

> On Oct 16, 2017, at 5:39 AM, Pat Bensky via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Using v14:
> 
> I get an error with
> 
> *FORM SET OUTPUT*("ReportHeaderLandscape")
> 
> ​"There is no table to apply the command to"
> 
> So how do you set the output form for a project form?
> 
> Pat
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: v13 - How to clear Array list box selection

2017-10-16 Thread Keith Culotta via 4D_Tech
Something along the lines of the listbox variable being a BOOLEAN array.  The 
highlighted rows are TRUE.

Keith - CDI


> On Oct 16, 2017, at 4:36 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I have an array based listbox.
> I make a select the first row.
> I drag n drop something else onto the listbox, the previous selected 
> row remains selected.
> 
> How do I clear this?
> I know how to do this in a selection listbox.. but can't 
> remember/figure out how to clear the selection in an array listbox
> 
> Thanks
> Chip
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Is a package preferred?

2017-10-20 Thread Keith Culotta via 4D_Tech
I switched back to folders for development.  It's easier to manipulate the 
app's supporting folders and files.  Users get a package, but like Chip said, 
you have to guard against the unintentional use of the datafile within the 
package.

Keith - CDI

> On Oct 19, 2017, at 5:41 PM, Robert ListMail via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> It seems like most of my Mac-based 4D databases are in a folder with the 
> structure and datafile on the same level and where there might be a test data 
> file in folder elsewhere. Yet, I have a few newly inherited Mac-based 
> databases that are in packages. Regarding best practices, what approach do 
> you favor? Do we like packages?  :)
> 
> Thanks,
> 
> Robert
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: SVG add object question

2017-10-22 Thread Keith Culotta via 4D_Tech
I think I recall a discussion a while back about SVG_Add_object not working 
well when the object being added was another svg document.
Two svg docs can be "combined" using SVG_ELEMENTS_TO_ARRAYS, and SVG_Add_object 
for each reference in the doc being added.
This technique doesn't produce a complete merge if doc2 has structures, like 
patterns, that the elements of doc2 depend on.

Keith - CDI

> On Oct 21, 2017, at 1:48 PM, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I must be confused about how this works. I have some SVG files I want to
> use to create button icons. These are nice, simple, native SVG. I want to
> manipulate them using SVG. I can open a file and export it to a pic
> variable just fine. But I'm not able to put that object into a new svg.
> 
> For example:
> 
> $svgImg:=SVG_Open_file ($path+$aDocs{$n})
> 
> $svg:=SVG_Copy ($svgImg)
> $pic1:=SVG_Export_to_picture ($svg;0)
> SVG_CLEAR ($svg)
> 
> This works as expected.
> 
> $svg:=SVG_New
> $newObj:=SVG_Add_object ($svg;$svgImg)
> $pic2:=SVG_Export_to_picture ($svg;0)
> 
> 
> This doesn't work. $pic2 is blank even though $svg has received the new
> object. I can see that by looking at $svg in the viewer.
> 
> What am I missing here?
> 
> -- 
> Kirk Brooks
> San Francisco, CA
> ===
> 
> *The only thing necessary for the triumph of evil is for good men to do
> nothing.*
> 
> *- Edmund Burke*
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: SVG add object question

2017-10-22 Thread Keith Culotta via 4D_Tech
A nice solution!  Just to be sure, it was to use ".svg" rather than "svg"?

$svgPictureRef:=SVG_New_embedded_image 
($svgCopyrightLayer_Ref;$interPicture;5;0;“.svg“)
rather than
$svgPictureRef:=SVG_New_embedded_image 
($svgCopyrightLayer_Ref;$interPicture;5;0;“svg“)


As displayed in the web page:
Next I tried the defined codec-option „svg“
$svgPictureRef:=SVG_New_embedded_image 
($svgCopyrightLayer_Ref;$interPicture;5;0;“svg“)  // appears the same
to no avail.

Finally I checked my manual of the source. Actually codec means extension, ergo 
„.svg“. This line of code
$svgPictureRef:=SVG_New_embedded_image 
($svgCopyrightLayer_Ref;$interPicture;5;0;“svg“)  // appears the same
delivers what I was looking for: 4D renders SVG inside SVG perfectly well.


Keith - CDI

> On Oct 22, 2017, at 3:16 PM, Ortwin Zillgen via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> this works for me
> 
> 
> 
> 
> Regards
> O r t w i n  Z i l l g e n

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: SVG add object question

2017-10-23 Thread Keith Culotta via 4D_Tech
  // A heads up about embedding a SVG area into another SVG area.
  // Getting the ID of the embedded object requires SVG Find element IDs by rect
  // It does not seem to work using SVG Find element ID by coordinates

$svg:=SVG_New 
$svgArea:=SVG_New 

SVG_New_text ($svg;"This is a test";10;10)
$interPicture:=SVG_Export_to_picture ($svg)
$svgPictureRef:=SVG_New_embedded_image ($svgArea;$interPicture;5;0;".svg")
SVG_SET_ID ($svgPictureRef;"SVG_Codec")

SVG_CLEAR ($svg)

$PicMain:=SVG_Export_to_picture ($svgArea)
SVG_CLEAR ($svgArea)

ARRAY TEXT($a_GetsOneID;0)
SVG Find element IDs by rect($PicMain;5;0;1;1;$a_GetsOneID)
$ID_IsEmpty:=SVG Find element ID by coordinates($PicMain;6;1)

ALERT("SVG Find element IDs by rect gets ="+$a_GetsOneID{1}+Char(13)+"SVG Find 
element ID by coordinates ="+$ID_IsEmpty)


// Keith - CDI

> On Oct 22, 2017, at 3:16 PM, Ortwin Zillgen via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> this works for me
> 
> 
> 
> 
> Regards
> O r t w i n  Z i l l g e n
> -
>    
>  
> member of developer-network 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Resizable subforms

2017-10-26 Thread Keith Culotta via 4D_Tech
If the WP object in a form is set to grow, and that is used in a subform which 
is set to grow, the WP object should grow the way you are thinking when the 
host form is resized.

Keith - CDI

> On Oct 26, 2017, at 4:32 AM, Pat Bensky via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Using v16:
> I'm experimenting with using subforms in ways that I haven't previously
> used them :)
> I have created a subform which contains a Write Pro area. The resizing
> options on that object are both set to Grow.
> 
> I've placed this subform onto another form. I've set the resizing options
> for the subform object both to Grow. But if the parent form is resized,
> nothing changes. The subform doesn't grow and Write Pro area stays the same.
> 
> Am I missing something or does it just not work that way?
> 
> Thanks!
> Pat
> 
> 
> -- 
> *
> CatBase - Top Dog in Data Publishing
> tel: +44 (0) 207 118 7889
> w: http://www.catbase.com
> skype: pat.bensky
> *
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Resizable subforms

2017-10-26 Thread Keith Culotta via 4D_Tech
Very odd.  If you place a subform object on the form, without adding content, 
set it to grow, run the form and resize it, do its borders grow?  If not, maybe 
try with a new host form?
Is the Write Pro object within the subform for sure set to grow?

Keith - CDI

> On Oct 26, 2017, at 12:47 PM, Pat Bensky via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Nothing grows ... not the subform or any of it contents.
> 
> On 26 October 2017 at 16:00, Keith Culotta via 4D_Tech <4d_tech@lists.4d.com
>> wrote:
> 
>> If the WP object in a form is set to grow, and that is used in a subform
>> which is set to grow, the WP object should grow the way you are thinking
>> when the host form is resized.
>> 
>> Keith - CDI
>> 
>>> On Oct 26, 2017, at 4:32 AM, Pat Bensky via 4D_Tech <
>> 4d_tech@lists.4d.com> wrote:
>>> 
>>> Using v16:
>>> I'm experimenting with using subforms in ways that I haven't previously
>>> used them :)
>>> I have created a subform which contains a Write Pro area. The resizing
>>> options on that object are both set to Grow.
>>> 
>>> I've placed this subform onto another form. I've set the resizing options
>>> for the subform object both to Grow. But if the parent form is resized,
>>> nothing changes. The subform doesn't grow and Write Pro area stays the
>> same.
>>> 
>>> Am I missing something or does it just not work that way?
>>> 
>>> Thanks!
>>> Pat
>>> 
>>> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Resizable subforms

2017-10-26 Thread Keith Culotta via 4D_Tech
Here is a quick sample of what I think we are talking about: 
http://cdinc.co/Sample/SubformGrow.zip
The subform objects resize in this one.  Done in v16.2.

Keith - CDI

> On Oct 26, 2017, at 1:48 PM, Pat Bensky via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> If I place a subform object on the form without content, it doesn't display
> at all.
> For sure the WritePro object is set to grow.
> I created a simple new subform containing just a field, set to grow, and
> placed that on my form as a subform and set it to grow. It doesn't ):
> 
> 
> 
> On 26 October 2017 at 19:31, Keith Culotta via 4D_Tech <4d_tech@lists.4d.com
>> wrote:
> 
>> Very odd.  If you place a subform object on the form, without adding
>> content, set it to grow, run the form and resize it, do its borders grow?
>> If not, maybe try with a new host form?
>> Is the Write Pro object within the subform for sure set to grow?
>> 
>> Keith - CDI
>> 
>>> On Oct 26, 2017, at 12:47 PM, Pat Bensky via 4D_Tech <
>> 4d_tech@lists.4d.com> wrote:
>>> 
>>> Nothing grows ... not the subform or any of it contents.
>>> 
>>> On 26 October 2017 at 16:00, Keith Culotta via 4D_Tech <
>> 4d_tech@lists.4d.com
>>>> wrote:
>>> 
>>>> If the WP object in a form is set to grow, and that is used in a subform
>>>> which is set to grow, the WP object should grow the way you are thinking
>>>> when the host form is resized.
>>>> 
>>>> Keith - CDI
>>>> 
>>>>> On Oct 26, 2017, at 4:32 AM, Pat Bensky via 4D_Tech <
>>>> 4d_tech@lists.4d.com> wrote:
>>>>> 
>>>>> Using v16:
>>>>> I'm experimenting with using subforms in ways that I haven't previously
>>>>> used them :)
>>>>> I have created a subform which contains a Write Pro area. The resizing
>>>>> options on that object are both set to Grow.
>>>>> 
>>>>> I've placed this subform onto another form. I've set the resizing
>> options
>>>>> for the subform object both to Grow. But if the parent form is resized,
>>>>> nothing changes. The subform doesn't grow and Write Pro area stays the
>>>> same.
>>>>> 
>>>>> Am I missing something or does it just not work that way?
>>>>> 
>>>>> Thanks!
>>>>> Pat
>>>>> 
>>>>> 
>> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: pointers to arrays (and List Box Basics)

2017-10-31 Thread Keith Culotta via 4D_Tech
A past discussion mentioned creating arrays on the fly using a Listbox command 
that creates columns.


This is for an array listbox.
http://livedoc.4d.com/4D-Language-Reference-16.2/List-Box/LISTBOX-INSERT-COLUMN.301-3433513.en.html
 C_POINTER($NilPtr)
 LISTBOX INSERT 
COLUMN(*;"MyListBox";1;"MyNewColumn";$NilPtr;"MyNewHeader";$NilPtr)
 ColPtr:=OBJECT Get pointer(Object named;"MyNewColumn")
 ARRAY TEXT(ColPtr->;10)

Keith - CDI

> On Oct 31, 2017, at 2:42 PM, Peter Mew via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Thank You
> And How do I create the Arrays in the First Place
> -pm
> 
> On Tue, Oct 31, 2017 at 7:32 PM, npdennis  wrote:
> 
>>> Im pretty sure I need to use pointers to accomplish this, but I dont
>> know how.
>> 
>> Try the command Get Pointer…
>> 
>> $p:=Get Pointer(“Array201”)
>> or
>> $x:=201
>> $p:=Get Pointer(“Array”+string($x))
>> 
>> However compiled you may need to have the arrays declared some place.
>> 
>> Neil
>> 
>> 
>> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: identify duplicates

2017-10-31 Thread Keith Culotta via 4D_Tech
The third parameter of DISTINCT VALUES really saves work.  Here is a strategy 
to find dups in a field within a selection.  The set can be a listbox highlight 
set.

  // 
  // Method: DuplicatesToSet
  // - 
  // INPUT1: Pointer - field
  // INPUT2: Text - Set Name
  // OUTPUT: 
  // 
$field:=$1
$set:=$2
ARRAY TEXT($aVals;0)
ARRAY LONGINT($aCount;0)

DISTINCT VALUES($field->;$aVals;$aCount)
SORT ARRAY($aCount;$aVals;<)
$pos:=Find in array($aCount;1)

If ($pos#-1)
ARRAY TEXT($aVals;$pos-1)
End if 

SET QUERY DESTINATION(Into set;$set)
QUERY SELECTION WITH ARRAY(;$field->;$aVals)
SET QUERY DESTINATION(Into current selection)


Keith - CDI

> On Oct 31, 2017, at 3:40 PM, David Witton via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I'm looking for a strategy to identify duplicate records in a table - that
> is, records for which 3 fields are identical across two or more records -
> or in another case, where a single field is not unique.
> 
> Does anyone have a suggestion on how to proceed?
> 
> -- 
> David Witton 
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Normalization question

2017-11-08 Thread Keith Culotta via 4D_Tech
[Project]<--[ProjectEmployeeType]-->   [Employee]  ?

Keith - CDI

> On Nov 8, 2017, at 2:06 PM, John Baughman via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Given a Project table and an Employee table where Employees can be Project 
> Principles, Project Managers, and Project Supervisors, what would be the 
> proper way to create a normalized table structure in 4D. In the end an 
> assigned employee’s information, like name for example, would automatically 
> be displayed in the project’s output form for each of these assignments.
> 
> I am pretty sure using the proper Select/Join commands in SQL this could 
> easily be done, but I am falling short with 4D as none of these structures 
> work...
> 
> [Employees]ID  <——— [Projects]PrincipleEmployeeID
> <——— [Projects]ProjectMangeEmplyeerID 
> <——— [Projects]SupervisorEmployeeID
> 
> OR using linked tables….
>   (There is only one record in each linking table for 
> each employee assigned a role)
> [Employees]ID  
> <———[Principles]EmployeeID<———---[Projects]PrincipleEmployeeID
><———[ProjectManagers]EmployeeID <——— 
> [Projects]ProjectMangeEmplyeerID
><———[Supervisors]EmployeeID <——— 
> ---[Projects]SupervisorEmployeeID
> 
> The only way I can see to make it work is to denormalize it and put the 
> pertinent data from the Employee table into the linking tables in which case 
> the relationship between the employee table and the linking tables become 
> irrelevant. 
> 
> I have no problem denormalizing, but thought this might be a good exercise to 
> retain a few more cells in my aging brain. ;-)
> 
> John
> 
> 
> John Baughman
> Kailua, Hawaii
> (808) 262-0328
> john...@hawaii.rr.com
> 
> 
> 
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Normalization question

2017-11-08 Thread Keith Culotta via 4D_Tech
It does make it more difficult to display the Person in the output form.  I had 
to create a function like getPersonInfo(ProjectID;PositionType) that pulled the 
name and phone of the project person in that position. It didn't create a 
noticeable slowdown in the list display.

"getPersonInfo" and others were included in the Allowable Methods list for 
Reports.  Since there were a limited number of position types, I could create 
methods like "getForeman" which just got the foreman for the current record of 
the Project. 

[ProjectEmployeeType]
  Type (mgr, foreman, super, etc...)
  ProjectID
  EmployeeID

Keith - CDI

> On Nov 8, 2017, at 2:31 PM, John Baughman via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I use that structure all the time where where 2 tables both have one to many 
> relationships with each other, but correct me if I am wrong but I don’t think 
> that is what I am looking for as it creates a many selection in the 
> employeetype table which doesn’t help in an output form. Also thinking ahead 
> to reports where automatic one relationships are much easier to manage.
> 
>> On Nov 8, 2017, at 10:20 AM, Keith Culotta via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> [Project]<--[ProjectEmployeeType]-->   [Employee]  ?
>> 
>> Keith - CDI
>> 
>>> On Nov 8, 2017, at 2:06 PM, John Baughman via 4D_Tech 
>>> <4d_tech@lists.4d.com> wrote:
>>> 
>>> Given a Project table and an Employee table where Employees can be Project 
>>> Principles, Project Managers, and Project Supervisors, what would be the 
>>> proper way to create a normalized table structure in 4D. In the end an 
>>> assigned employee’s information, like name for example, would automatically 
>>> be displayed in the project’s output form for each of these assignments.
>>> 
>>> I am pretty sure using the proper Select/Join commands in SQL this could 
>>> easily be done, but I am falling short with 4D as none of these structures 
>>> work...
>>> 
>>> [Employees]ID  <——— [Projects]PrincipleEmployeeID
>>>   <——— [Projects]ProjectMangeEmplyeerID 
>>>   <——— [Projects]SupervisorEmployeeID
>>> 
>>> OR using linked tables….
>>> (There is only one record in each linking table for 
>>> each employee assigned a role)
>>> [Employees]ID  
>>> <———[Principles]EmployeeID<———---[Projects]PrincipleEmployeeID
>>>  <———[ProjectManagers]EmployeeID <——— 
>>> [Projects]ProjectMangeEmplyeerID
>>>  <———[Supervisors]EmployeeID <——— 
>>> ---[Projects]SupervisorEmployeeID
>>> 
>>> The only way I can see to make it work is to denormalize it and put the 
>>> pertinent data from the Employee table into the linking tables in which 
>>> case the relationship between the employee table and the linking tables 
>>> become irrelevant. 
>>> 
>>> I have no problem denormalizing, but thought this might be a good exercise 
>>> to retain a few more cells in my aging brain. ;-)
>>> 
>>> John
>>> 
>>> 
>>> John Baughman
>>> Kailua, Hawaii
>>> (808) 262-0328
>>> john...@hawaii.rr.com
>>> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Normalization question

2017-11-08 Thread Keith Culotta via 4D_Tech
These searches will return a People record for a Many to Many relation.  The 
function could be the Expression of the listbox column, or assign a variable in 
a traditional output form in Display Detail (maybe display a [People] field?).

Relate Many([Project]ID)
Query selection([ProjectEmployeeType];[ProjectEmployeeType]Type="Foreman")
Query([People];[People]ID=[ProjectEmployeeType]EmployeeID)
$0:=[People] name + phone + etc...
or

Query([ProjectEmployeeType];[ProjectEmployeeType]ProjectID=[Project]ID;*)
Query([ProjectEmployeeType];[ProjectEmployeeType]Type="Foreman")
Query([People];[People]ID=[ProjectEmployeeType]EmployeeID)
$0:=...

or

Query([People;[ProjectEmployeeType]ProjectID=[Project]ID;*)
Query([People;[ProjectEmployeeType]Type="Foreman")
$0:=...

Keith - CDI

> On Nov 8, 2017, at 3:01 PM, Alan Chan via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Table
> Project Master
> Employee Master
> Project member
> 
> Project master <- Project member -> Employee master
> 
> Project member table contains Role (integer) 0=regular member; 1=role A; 
> 2=role B; 3=whatever role
> 
> Alan Chan
> 
> 4D iNug Technical <4d_tech@lists.4d.com> writes:
>> Given a Project table and an Employee table where Employees can be Project 
>> Principles, Project Managers, and Project Supervisors, what would be the 
>> proper way to create a normalized table structure in 4D. In the end an 
>> assigned employee’s
>> information, like name for example, would automatically be displayed in the 
>> project’s output form for each of these assignments.
>> 
>> I am pretty sure using the proper Select/Join commands in SQL this could 
>> easily be done, but I am falling short with 4D as none of these structures 
>> work...
>> 
>> [Employees]ID  <——— [Projects]PrincipleEmployeeID
>><——— [Projects]ProjectMangeEmplyeerID 
>><——— [Projects]SupervisorEmployeeID
>> 
>> OR using linked tables….
>>  (There is only one record in each linking table for 
>> each employee assigned a role)
>> [Employees]ID  
>> <———[Principles]EmployeeID<———---[Projects]PrincipleEmployeeID
>>   <———[ProjectManagers]EmployeeID <——— 
>> [Projects]ProjectMangeEmplyeerID
>>   <———[Supervisors]EmployeeID <——— 
>> ---[Projects]SupervisorEmployeeID
>> 
>> The only way I can see to make it work is to denormalize it and put the 
>> pertinent data from the Employee table into the linking tables in which case 
>> the relationship between the employee table and the linking tables become 
>> irrelevant. 
>> 
>> I have no problem denormalizing, but thought this might be a good exercise 
>> to retain a few more cells in my aging brain. ;-)
>> 
>> John
>> 
>> 
>> John Baughman
>> Kailua, Hawaii
>> (808) 262-0328
>> john...@hawaii.rr.com
>> 
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Normalization question

2017-11-08 Thread Keith Culotta via 4D_Tech
Something that stood out in a recent thread about the definition of the 
Relational Model was a statement that said related fields should contain 
meaningful information.  This was a surprise, especially since the use of UUIDs 
has been such a convenience.  I took 'meaningful' to imply 'user definable' 
(with guidance of course), in spite of the headaches it can lead to.

Keith - CDI

> On Nov 8, 2017, at 4:48 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> ** NO ** user definable data should be used as relational/unique key 
> value.
> generate your own internal values for relations, longint, UUIDs, 
> variations on the Batman Logo, anything that the user has no say in 
> what it is nor how it is used.
> 
> On Wed, 8 Nov 2017 17:38:38 -0500, Chip Scheide via 4D_Tech wrote:
>> 
>>> If, as is the case in my situation, one has a unique field in the 
>>> Employee table that is user recognizable such as an Employee Number 
> As I suggested, the employee number could change, be reused, they could 
> change the form of the ID, from say 10 digits, to a 4 character 
> alphanumeric, or to a retinal scan... who knows!!! And don't forget 
> that value will likely be typed (entered) at some point and there are 
> typos too.
> 
> Melinda Enters Joe's ID as 1234578 (which is Fred's), instead of 
> 1234587. It takes a month to find the issue (payday) as Joe doesn't get 
> a pay check and Fred gets an extra large one (way to go Fred! good work 
> here is a bonus).  I think you can see where this goes...how do you 
> untangle *that* mess as all of your internal data is tied to the 
> mis-entered employee ID.
> 
> my 2cents
> 
> 
> 
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Slow characters visualization

2017-11-20 Thread Keith Culotta via 4D_Tech
Just to confirm, I have also seen the issue on my MacBook Pro since v15 was 
introduced.  It was intermittent, and I have not experienced it for a while.  
Sometimes quitting 4D and restarting would help.  Other times it would restart 
with the problem still present.  I never saw a clear pattern for what would 
trigger the slowness.

Keith - CDI

> On Nov 20, 2017, at 3:23 PM, stardata.info via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi All,
> 
> I have again the issue explained below using 4D V15.5 on windows.
> 
> I notice that when i write one command or one comment in a method, 4D is very 
> slowly to
> 
> display the characters typed on the keyboard and in task manager i can the 
> see that 4D take until 14% of cpu...
> When even the last character typed is displayed, the cpu for 4D return to 0.
> 
> No one have this issue ?
> 
> Thanks
> Ferdinando
> 
> Il 11/11/2017 00:26, stardata.info ha scritto:
>> 
>> Hi,
>> 
>> If i open only one method 50 rows... i have the same slow.
>> With 4D V15.4 not have this issue...
>> 
>> Thanks
>> /Ferdinando/
>> 
>> Il 10/11/2017 21:00, 4d_tech-requ...@lists.4d.com ha scritto:
>>> Message: 9
>>> Date: Fri, 10 Nov 2017 08:01:29 -0800
>>> From: Kirk Brooks
>>> To: 4D iNug Technical<4d_tech@lists.4d.com>
>>> Subject: Re: Slow characters visualization
>>> Message-ID:
>>> 
>>> Content-Type: text/plain; charset="UTF-8"
>>> 
>>> Ferdinando,
>>> If you happen to have some forms open that include subforms and you have
>>> the subform open too it can cause the design process to use a lot of CPU
>>> cycles which might cause your system overall to behave as you describe.
>>> This was especially true if the subforms had listboxes. I haven't noticed
>>> this in a long time and this specific issue may have been resolved.
>>> 
>>> The thing is something is using a lot of processing power in the design
>>> process. It's probably doing some sort of dynamic redraw or update.
>>> 
>>> On Thu, Nov 9, 2017 at 11:15 PM, stardata.info via 4D_Tech <
>>> 4d_tech@lists.4d.com> wrote:
>>> 
 I All,
 
 I notice that the slow in characters visualization, is always, even if the
 method have 10 rows.
 When i write into one method the cpu consuming of 4D V15.5 is around
 12/15%, like if 4D do a big work in interpretation of a code that i write
 into a method.
 This only on 4D V15.5 in other version of 4D all is normal.
 
 Only i have this issue?
 
 Thanks
 Ferdinando
 
 Message: 1
 Date: Mon, 6 Nov 2017 22:03:19 +0100
 From: "stardata.info"
 To:4d_tech@lists.4d.com
 Subject: Slow characters visualization
 Message-ID:<042ac318-dd04-b313-c069-4312c66f9...@stardata.info>
 Content-Type: text/plain; charset=windows-1252; format=flowed
 
 Hi all,
 
 I use 4D V15.5 on windows.
 Sometimes when i write a method the editor is not fast responsive, in
 fact i can see the character digited only after one second.
 
 Someone know the reason, and how i can solve?
 
 Thanks
>> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Database locked in merged application

2017-12-21 Thread Keith Culotta via 4D_Tech
Re: So it looks like the data file which is wrapped up inside the application 
can’t be used

After opening the app's package, doing a "Get Info" on the contents, making 
permissions R/W, and then building the app, that message went away in the built 
application.  

I had set the DB preference to not alert when the database was in R/O mode, but 
now that I think about it, it was set for the app's DB and not for the Default 
Data folder's DB.  Might revisit that first.

Keith - CDI

> On Dec 21, 2017, at 2:47 AM, James Knight via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Can anyone help me with this?
> 
> Thanks
> 
> James
> 
> 
> Thanks to those who’ve replied so far with this.
> 
> I’m using 4D 15.5 build 15.216758 on Mac OS X 10.13.1
> 
> I think that I’ve followed the instructions for creating a default data file 
> - I have a Default Data folder next to my .4db file, and this contains the 
> default data file (Default.4dd, Default.4Dindx and Default.Match).
> 
> Having built the application, if I inspect the package contents, I see 
> Contents/Database and this contains my 4DC compiled application, with the 
> populated Default Data folder alongside it.
> 
> However, I cannot make this application run at all. It tells me that the data 
> file is locked and it’s impossible to open the database. The only way it will 
> open is if I put a data file in the same folder as the built application,
> 
> So it looks like the data file which is wrapped up inside the application 
> can’t be used, even though no write access is required.
> 
> I haven’t got as far as signing my application - I didn’t think I needed to 
> do this, as I am simply copying the application directly to individual 
> computers on the network. I usually use Remote Desktop to copy the built 
> application to all computers on the LAN.
> 
> Hope someone can help further with this.
> 
> Cheers
> 
> James Knight
> Waveney River Centre
> 
> ja...@waveneyrivercentre.co.uk 
> 
>> On 19 Dec 2017, at 23:16, Keisuke Miyako via 4D_Tech <4d_tech@lists.4d.com 
>> > wrote:
>> 
>> I don't have a solution but to better understand the situation:
>> 
>> are you actually using the v15 default.4dd system,
>> or simply placing a {name}.4dd adjacent to the compiled structure file?
>> http://doc.4d.com/4Dv15/4D/15/Default-data-file-in-merged-applications.300-2018649.en.html
>>  
>> 
>> 
>> did you code sign (and verify) your built application?
>> 
>> unlikely, but did you check if the read-only-allow property is passed on to 
>> your built application?
>> (for example, by implementing OPEN SETTINGS WINDOW)
>> 
>> http://doc.4d.com/4Dv15/4D/15.4/DatabaseData-storage-page.300-3285380.en.html
>> 
>> least but not least, always good to include the build number of 4D and the 
>> OS.
>> 
>>> 2017/12/20 7:41、James Knight via 4D_Tech <4d_tech@lists.4d.com> のメール:
>>> It’s clearly permissions related - but how can I fix it?
>> 
>> 
>> 
>> 
>> **
>> 4D Internet Users Group (4D iNUG)
>> FAQ:  http://lists.4d.com/faqnug.html
>> Archive:  http://lists.4d.com/archives.html
>> Options: http://lists.4d.com/mailman/options/4d_tech
>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
>> **
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Tip: SVG internal error Trace

2018-01-15 Thread Keith Culotta via 4D_Tech
In case I am not the last one to know...  

When an internal SVG error message pops up on the screen, the Trace button is 
disabled in the dialog, but Trace is still available to display the offending 
line of code.  You can use the option-command-click and select from the pop-up 
menu while the error dialog is being displayed to begin tracing the process 
code  ... in 16R5 at least.

Keith - CDI
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: File Size

2018-01-15 Thread Keith Culotta via 4D_Tech
Today I saw that somewhere around 1997 the answer to this 6÷2(1+2) changed from 
1 to 9, also because of techno-cultural influences.

Keith - CDI

> On Jan 15, 2018, at 2:10 PM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> On Jan 15, 2018, at 2:00 PM, Wayne Stewart wrote:
> 
>> I'm trying to create a method that will return a file size as a string,
>> similar to how the Finder does.
>> 
>> Although I get "a result" it's not the "same result" as reported in the
>> Finder :(
>> 
>> It turns out that in the Finder KB are 1000 bytes, MB are 1000 KB etc.
>> 
>> I wasted a fair bit of time on this !
> 
> 
> Yes, a kilobyte is 1,024 bytes and it used to be if you saw “K” that was a 
> kilobyte. I guess now the standard is a “K” is 1,000. I remember learning 
> this in college back in the 80’s. And a MB was 1,024 * 1,024 back then too.
> 
> Didn’t this also have something to do with how hard drive manufacturers were 
> reporting drive sizes. People thought they were getting ripped off for some 
> bytes when it was really just a terminology issue. Then Apple decided to 
> change to match what the hard drive people were doing. Does anyone else 
> remember it like this?
> 
> https://discussions.apple.com/thread/3071175
> 
> Tim
>   
> Tim Nevels 
> timnev...@mac.com 
> Innovative Solutions
> 785-749-3444
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Anyone been using R5 for real work?

2018-01-19 Thread Keith Culotta via 4D_Tech
R5 has been very solid to the extent I've used it.  I'm using dot notation and 
the new FORM object to get a floating window to communicate with instances of a 
subform containing a SVG picture.  The FORM object is very convenient.  I 
haven't tried to access tables.

Keith - CDI

> On Jan 19, 2018, at 10:53 AM, Jeffrey Kain via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Just wondering how it's going... there's so much new stuff it's tempting to 
> jump on the "R" train. But 16.3 is so extremely solid...


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: User Custom Forms

2018-01-23 Thread Keith Culotta via 4D_Tech
I used an inherited form in the user enterable form, so some changes could be 
made in the development environment without destroying the User's changes.

Also, could OBJECT DUPLICATE be used during On Load to give a new object a name 
like "[Table1]Field1"?

Keith - CDI

> On Jan 23, 2018, at 8:41 AM, Pat Bensky via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> (Using v16)
> 
> I'm experimenting with allowing users to create their own forms with
> editable forms. I have one or two questions ...
> 
> *1. Displaying/deleting objects such as fields*
> I need to allow the user to choose which fields to display on the form. The
> only way I can see to manage that is to place ALL fields from the table on
> the form, and set them as Invisible. Then have a list of fields that the
> user can choose from and make the selected field(s) visible. Then if they
> want to delete a field, we just make it invisible again. Is there a better
> way to manage this?
> 
> *​2. Stability*
> ​I'm currently working with v16r5 and I am finding these editable forms to
> be very unstable. Many crashes and strange behaviour. Is this usual or just
> because it's a beta version?
> 
> *3. The .4DA file*
> This file containing the custom forms is saved into the .4DA file next to
> the structure. Is there any way to store it in a different location? Say,
> next to the .4dd? Staring it next to the .4dc file makes updating a bit of
> an issue.
> 
> *4. Any other comments?*
> Any suggestions, or gotchas, you would like to share about this topic?
> 
> 
> Thanks!
> 
> Pat
> 
> -- 
> *
> CatBase - Top Dog in Data Publishing
> tel: +44 (0) 207 118 7889
> w: http://www.catbase.com
> skype: pat.bensky
> *
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: ADA Compliance ???

2018-01-24 Thread Keith Culotta via 4D_Tech
No direct experience, but a couple of resources.

Government rules: 
https://www.access-board.gov/guidelines-and-standards/communications-and-it/about-the-ict-refresh/final-regulatory-impact-analysis#_Toc471376906

DOJ Quick Check: https://www.justice.gov/crt/software-accessibility-checklist

Real world example: https://www.dailymotion.com/video/x2zy0nd

Keith - CDI

> On Jan 24, 2018, at 10:04 AM, Randy Engle via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Every week, or so, one of our customers comes up with something that they 
> do/need that I've never heard of before.
> 
> This weeks winner is a major city in Southern California.  (no names 
> mentioned...)
> 
> They want to know at  what "Level" our web product is ADA compliant.
> 
> I'm aware of ADA compliance when it comes to physical spaces, ramps, 
> bathrooms, etc., but not for software (web pages, specifically)
> 
> Anybody had the pleasure of handling this one yet?
> Know of any resources?
> 
> Thanks
> 
> Randy Engle, Director
> XC2 Software LLC – XC2LIVE!
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

ImageCaptureCore - to Variable?

2018-01-31 Thread Keith Culotta via 4D_Tech
Hello,

I'm experimenting with 4d-plugin-ica and it's working.  Is it possible to avoid 
scanning to a disk file?
I tried ICA SET SCAN OPTION ($scanner;Scanner transfer mode;String(Scanner 
transfer mode data))
and can see a BLOB is being built.

Using BLOB TO PICTURE  and BLOB TO VARIABLE (with a picture variable) do not 
result in an image.

Is an image available somewhere using this option?

Thanks,

Keith - CDI
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: ImageCaptureCore - to Variable?

2018-02-01 Thread Keith Culotta via 4D_Tech
maybe another time, if I find where it starts.

> On Jan 31, 2018, at 6:46 PM, Keisuke Miyako via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> but you receive binary RGB data in chunks,
> and you have to build your own JPG, PNG, TIFF, whatever, by code.
> 
> do you really want to go down that path?

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Wayback machine: 6.5 Client lost a form

2018-02-05 Thread Keith Culotta via 4D_Tech
Hello,

A customer gets a "Form not found" error when trying to access a Table form on 
one of their PCs.
All other PCs can view the form.
No user logged into this one PC can view the form.
It's a virtual Windows XP environment when accessing 4D.

Does anyone remember where the temp folder for the 4D Client 6.5 version is 
kept?  
I'm thinking a resource file is damaged.

Thanks,

Keith - CDI
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Delivery problem

2018-02-21 Thread Keith Culotta via 4D_Tech
So I build a quick sample app for a client and send a zipped copy.  He writes 
back and says his Mac won't open it because it’s from an undignified developer

Keith - CDI
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Delivery problem

2018-02-21 Thread Keith Culotta via 4D_Tech
That works.  Dignity restored.

Keith - CDI

> On Feb 21, 2018, at 12:11 PM, Timothy Penner via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
>> So I build a quick sample app for a client and send a zipped copy.  He 
>> writes back and says his Mac won't open it because it’s from an undignified 
>> developer
> 
> Tech Tip: Changes to Gatekeeper in Sierra when running downloaded applications
> http://kb.4d.com/assetid=77688
> 
> TL/DR: Become an Apple Developer (pay $99/year) to get an App Signing 
> Certificate, sign the app using this certificate, create a DMG, place app on 
> dmg, sign the dmg, send the customer the dmg.
> 
> -Tim
> 
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Barber Pole Progress Indicator for Foundation

2018-02-21 Thread Keith Culotta via 4D_Tech
If you don't mind using the Progress component, this would work:
 
http://livedoc.4d.com/4D-Progress-16-R6/Progress-bars/Progress-SET-PROGRESS.301-3712491.en.html

Keith - CDI

> On Feb 21, 2018, at 4:57 PM, Douglas von Roeder via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> I'm working with a Foundation-based application that's running in an all
> Mac environment and I want to display a barber pole progress indicator.
> 
> Foundation does have scads of features but, unfortunately, a barber pole
> style progress indicator isn't one of them.
> 
> Has anyone created one that I could use or, lacking that, anyone know where
> that's available?
> 
> --
> Douglas von Roeder
> 949-336-2902
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: time entry filter

2018-03-12 Thread Keith Culotta via 4D_Tech
4D will interpret entries like 1.25p as 13:25:00, or 1.25 as 01:25:00 without 
requiring a filter.  

Keith - CDI

> On Mar 12, 2018, at 8:07 AM, Randy Jaynes via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Does anyone know of a filter string or something that can be done so people 
> don’t have to be entering times in a time field/variable in 24h format?
> 
> The display of HH:MM AM/PM is great, but when you click into the field it 
> switches to 00:00:00 and shows the nice 4:08 PM as 16:08:00 and expects you 
> to enter as 24h format.
> 
> I hate to think I have to create a method myself to do something this basic. 
> I must be missing something in these docs, right?
> 
> Randy
> 
> --
> Randy Jaynes
> Senior Programmer and Customer Support
> 
> http://printpoint.com  • 845.687.3741 • PrintPoint, 
> Inc • 57 Ludlow Lane • Palisades, NY 10964 
> Please send all email contacts to supp...@printpoint.com 
> 
> 
> 
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Multi-Table Query Into JSON?

2018-03-23 Thread Keith Culotta via 4D_Tech
The "Movable form dialog box" type became available for "Open form window" at 
some point.  It is also constant 5.  

A "Plain form window" with Cancel in the Deactivate event is user friendly, but 
will probably appear behind a floating window.

Keith - CDI

> On Mar 23, 2018, at 12:15 PM, Keisuke Miyako via 4D_Tech 
> <4d_tech@lists.4d.com > wrote:
> 
> as far as the window type is concerned, ALERT is like any DIALOG,
> you can pass the constant Movable dialog box to Open window to get similar 
> effect.
> 
> http://doc.4d.com/4Dv16/4D/16.3/Window-Types-compatibility.300-3651740.en.html
>  
> 
> 
> note that this kind of window is not available for Open form window.
> 
> http://doc.4d.com/4Dv16/4D/16.3/Window-Types.300-3651761.en.html 
> 



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

ORDA query & pointers syntax question

2018-04-11 Thread Keith Culotta via 4D_Tech
Hello,

I didn't recognize a solution for this in the docs.
When the table and field are unknown until execution time, any suggestions on 
what the ORDA approach to this type of query would be?  

QUERY(pTable->;pField->=$aValue)

Thanks - Keith - CDI
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: ORDA query & pointers syntax question

2018-04-11 Thread Keith Culotta via 4D_Tech
Thanks!

> On Apr 11, 2018, at 4:04 PM, Julio Carneiro via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> ooops, sorry I mixed up ‘classic 4D’ and ORDA :-)
> 
> The query line should read:
> 
> ds[$tableName].query($tableName+”.”+$fieldName+” = “+$aValue)
> or
> ds[$tableName].query($tableName+”.”+$fieldName+” = :1“;$aValue)
> 
> hth
> julio
> 
>> On Apr 11, 2018, at 5:00 PM, Julio Carneiro  wrote:
>> 
>> Something like this might do the trick (did not try it yet):
>> 
>> $tableName:=Table name(pTable)
>> $fieldName:=Field name(pField)
>> QUERY(ds[$tableName];ds[$tableName][$fieldName]=$aValue)
>> 
>> When an object property name is on  a variable, you can use the 
>> “object[property]” syntax.
>> 
>> hth
>> julio
>> 
>>> On Apr 11, 2018, at 4:08 PM, Keith Culotta via 4D_Tech 
>>> <4d_tech@lists.4d.com> wrote:
>>> 
>>> Hello,
>>> 
>>> I didn't recognize a solution for this in the docs.
>>> When the table and field are unknown until execution time, any suggestions 
>>> on what the ORDA approach to this type of query would be?  
>>> 
>>> QUERY(pTable->;pField->=$aValue)
>>> 
>>> Thanks - Keith - CDI
>> 
>> --
>> Julio Carneiro
>> jjfo...@gmail.com
>> 
>> 
>> 
> 
> --
> Julio Carneiro
> jjfo...@gmail.com
> 
> 




Keith
 http://www.compdim.com/ | https://www.apple.com/support/macbasics/

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

ORDA on switch?

2018-04-12 Thread Keith Culotta via 4D_Tech
C_OBJECT($entAll)
$entAll:=ds.Table_1.all()

The code works in a new structure.  
It fails in a converted structure with the error "Unknown Member Function".

Compatibility: "Use object notation..." is checked.
"Expose with 4D Mobile Service" is checked for the Table and Fields.
The database was restarted after the settings changes.
The compiler has no problem with the code.

Is there another compatibility switch somewhere to set?

Thanks - Keith - CDI
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: ORDA on switch?

2018-04-12 Thread Keith Culotta via 4D_Tech
The table must have a primary key field to be seen.  The old table was created 
before primary keys were used.

Keith - CDI

> On Apr 12, 2018, at 10:33 AM, Keith Culotta  wrote:
> 
> C_OBJECT($entAll)
> $entAll:=ds.Table_1.all()
> 
> The code works in a new structure.  
> It fails in a converted structure with the error "Unknown Member Function".
> 
> Compatibility: "Use object notation..." is checked.
> "Expose with 4D Mobile Service" is checked for the Table and Fields.
> The database was restarted after the settings changes.
> The compiler has no problem with the code.
> 
> Is there another compatibility switch somewhere to set?
> 
> Thanks - Keith - CDI

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: MSC Warnings

2018-04-24 Thread Keith Culotta via 4D_Tech
Try this. I don't remember if it was the stylesheet property at that time or 
another property, but you can see if it works.

I have changed an object type that had no stylesheet in Properties to another 
type that had a stylesheet.  After doing that the hidden stylesheet appeared  
and could be removed.  Then the object to be set back to its correct type.

Keith - CDI

> On Apr 24, 2018, at 4:22 PM, Cannon Smith via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Yes, it runs fine. I’d just like to get rid of the warnings.
> 
> I’m wondering if there was a time (v15?) when the object properties allowed 
> setting a stylesheet on thermometers. Now that’s been fixed, but my structure 
> still has a stylesheet attached to the thermometer, so it throws an error. 
> The problem is that I can’t get at it to fix it.
> 
> --
> Cannon.Smith
> Synergy Farm Solutions Inc.
> Hill Spring, AB Canada
> 403-626-3236
> 
> 
> 
> 
>> On Apr 24, 2018, at 3:10 PM, Charles Miller via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> Nope
>> I have the same problem with different object types. I have hundreds of
>> them. I fix some of them when I can, but since I never have problems
>> running?
>> 
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Picture resources

2018-04-27 Thread Keith Culotta via 4D_Tech
Take a look at this Tech Tip and its link to Tech Tip 76775: 
http://kb.4d.com/assetid=77713
The code must be run the the older version of 4D, the one compatible with the 
depreciated picture format.

Keith - CDI

> On Apr 27, 2018, at 2:09 PM, Dave Tenen via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I know this has probably been covered here but I searched and found no clear 
> answer to this and any direction would be appreciated!.  
> I am trying to upgrade some older dbs to version 16, that have picture 
> library entries that are all coming up with the default images.  How can I 
> retrieve the original Picture library images?  
> Also related to that…is there anything that will allow me retrieve old 
> embedded resources (mostly pics and icons) that have the format 15000;1 etc.?
> 
> Thanks for any help in this area!
> 
> Dave Tenen
> 
> 
> Personal Chef 
> 
> Coming to you from Spec Pond and I swear the fish was
> []
> this big
> 
> dte...@me.com
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Picture resources Related Question

2018-04-27 Thread Keith Culotta via 4D_Tech
The Picture Library is still in 17b, but you can only add a new pic to by 
loading it from a volume.  Pics in the library can still be assigned to form 
objects.

Keith - CDI

> On Apr 27, 2018, at 2:42 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Is the Picture library depreciated?
>   
> 
> 
> On Fri, 27 Apr 2018 15:09:43 -0400, Dave Tenen via 4D_Tech wrote:
>> I know this has probably been covered here but I searched and found 
>> no clear answer to this and any direction would be appreciated!.  
>> I am trying to upgrade some older dbs to version 16, that have 
>> picture library entries that are all coming up with the default 
>> images.  How can I retrieve the original Picture library images?  
>> Also related to that…is there anything that will allow me retrieve 
>> old embedded resources (mostly pics and icons) that have the format 
>> 15000;1 etc.?
>> 
>> Thanks for any help in this area!
>> 
>> Dave Tenen
>> 
>> 
>> Personal Chef 
>> 
>> Coming to you from Spec Pond and I swear the fish was
>> []
>> this big
>> 
>> dte...@me.com
>>  

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: "Your password does not allow you to use this form"

2018-05-24 Thread Keith Culotta via 4D_Tech
This happened to me recently on a Mac that had no printers yet added to the 
Print System.

Keith - CDI

> On May 24, 2018, at 3:48 PM, Keisuke Miyako via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> could it be that the table has no defined output forms (and the editor is 
> somehow looking for it) ?
> does the same happen using the same code and version with a brand new 
> structure?
> 
> ---
> 
> partners have access to the source code of 4D Label Editor,
> https://blog.4d.com/component-source-code-sharing-4d-partners/
> 
> but the method C_OPEN_EDITOR is evidently called when PRINT LABEL decides to 
> display the UI.
> if you are getting the error before the editor is displayed, it would be 
> outside the remit of the component.
> 
> ---
> 
> I once had a customer who wanted to display the editor with settings loaded 
> from s previously saved project file,
> but evidently the new 64-bit editor is design to either display the UI with 
> no settings or load settings and print immediately.
> 
> so we had to dismiss the official label editor.
> https://github.com/miyako/4d-component-label-editor
> 
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Why are columns of a non-focusable listbox not enterable?

2018-05-25 Thread Keith Culotta via 4D_Tech
Try something like this:

OBJECT SET ENTERABLE(*;"LB1";False)
OBJECT SET FOCUS RECTANGLE INVISIBLE(*;"LB1";True)

FORM GET ENTRY ORDER($aNames;*)
DELETE FROM ARRAY($aNames;1)  // the is "LB1"
FORM SET ENTRY ORDER($aNames)

Keith - CDI

> On May 25, 2018, at 1:08 PM, Piotr Chabot Stadhouders via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Hi,
> 
> you've got me there😊
> 
> OK, so 90% of the time the listbox doesn't need to be enterable
> I don't want it to have the focus because I want other objects to keep the 
> focus
> At some point (the other 10%) I want it to be enterable
> OBJECT SET ENTERABLE on a column doesn't work, because the listbox is not 
> focusable
> OK, so I set the listbox to focusable with wait, where's the OBJECT SET 
> FOCUSABLE command?
> 
> Am I overlooking something?
> 
> Gr,
> 
> Piotr
> 
> 
>> -Oorspronkelijk bericht-
>> Van: Jeffrey Kain 
>> Verzonden: donderdag 24 mei 2018 13:03
>> Aan: 4D iNug Technical <4d_tech@lists.4d.com>
>> Onderwerp: Re: Why are columns of a non-focusable listbox not enterable?
>> 
>> "Why would you want to do that"?
>> 
>> How can something be enterable without getting the focus first?
>> 
>> 
>> --
>> Jeffrey Kain
>> jeffrey.k...@gmail.com
>> 
>> 
>> 
>> 
>>> On May 24, 2018, at 2:57 AM, Piotr Chabot Stadhouders via 4D_Tech
>> <4d_tech@lists.4d.com> wrote:
>>> 
>>> I need some listboxes that are not focusable However, as a side effect
>>> then the columns of these listboxes are not enterable Does anybody
>>> know the reason of this? Does this make sense?
>> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Flexible SVG ID Strategy

2018-06-05 Thread Keith Culotta via 4D_Tech
The easiest way I've found to move the objects in a group is to 
SVG_SET_TRANSFORM_TRANSLATE the group when the mouse is moving.  
Later if you UNGROUP, the translation needs to be spread out over the group's 
children so they don't jump to new locations.

You can use SVG_Get_root_reference in a loop to find the topmost group of the 
clicked object (the last one whose TYPE is not "svg").

Unless an ID needs to be meaningful, I've been letting the 4D SVG Engine set 
the ID (SVG_SET_OPTIONS), or setting the ID to GENERATE UUID.

Keith - CDI

> On Jun 5, 2018, at 3:22 PM, John J Foster via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi All,
> 
> {I sent this yesterday & and again earlier today and it never made it 
> through?}
> 
> I am trying to create an interface built using SVG. The svg image will 
> include many different kinds of complex objects. Bu complex I mean that each 
> object is itself a complex object built by SVG and added into the main SVG 
> image.
> 
> I want to be able to identify any part of an image I click on even if it’s 
> part of a group. But I also want to be able to move the object around to 
> different coords in the image.
> 
> I am using SVG_SET_ID (domSvg;”id_name...”) set each part of the objects ID. 
> when I click on them I see the ID and this works great. BUT...
> 
> But when I move an object I want the entire object to move not just the part 
> of it.
> 
> So wondering if anyone has decided on a strategy for managing SVG OD’s and 
> how to best handle moving things around?
> 
> If this doesn’t make sense please ask questions.
> 
> BTW I am running in 4D v16 r6 and will be moving to v17.
> 
> Appreciate,
> John…

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Build with code signing

2018-06-11 Thread Keith Culotta via 4D_Tech
Would this still be relevant: http://kb.4d.com/assetid=76697 ?

Keith - CDI

> On Jun 11, 2018, at 12:34 PM, Peter Bozek via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
>> Can someone please direct me to documentation on how to code sign apps for
>> MacOS with 4D.  I need the entire process in a step-by-step guide from
>> explaining how to obtain the code signing certificate from Apple through
>> adding it to the 4D XML build files and building.

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Uppercase Lowercase

2018-06-20 Thread Keith Culotta via 4D_Tech
or
C_BOOLEAN($0)
C_TEXT($1;$2)
$0:=(Position string ($1; $2; *) = 1)

Keith - CDI

> On Jun 20, 2018, at 2:19 PM, Jeffrey Kain via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> How about
> 
> C_BOOLEAN($0)
> C_TEXT($1;$2)
> $0:=(Replace string ($1; $2; *) = “”)
> 
>> On Jun 20, 2018, at 3:05 PM, stardata.info  via 
>> 4D_Tech <4d_tech@lists.4d.com > wrote:
>> 
>> I need to a function for use in a IF statement.
>> For the moment, i have done a function that make a confront char by char.
>> 
>> Thanks
>> Ferdinando
>> 
>> 
>> Message: 1
>> Date: Wed, 20 Jun 2018 13:38:22 -0400
>> From: Chuck Miller> >
>> To: 4DTechList Tech<4d_tech@lists.4d.com >
>> Subject: Re: Uppercase Lowercase
>> Message-ID:
>>   > >
>> Content-Type: text/plain;charset=us-ascii
>> 
>> If using sql you can select case sensitivity, but be careful, as it will be 
>> set for every sql query where clause
>> 
>> Regards
>> 
>> Chuck

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Uppercase Lowercase

2018-06-20 Thread Keith Culotta via 4D_Tech
...and check the length is =

Keith - CDI

> On Jun 20, 2018, at 2:32 PM, Keith Culotta via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> or
> C_BOOLEAN($0)
> C_TEXT($1;$2)
> $0:=(Position string ($1; $2; *) = 1)
> 
> Keith - CDI
> 
>> On Jun 20, 2018, at 2:19 PM, Jeffrey Kain via 4D_Tech <4d_tech@lists.4d.com> 
>> wrote:
>> 
>> How about
>> 
>> C_BOOLEAN($0)
>> C_TEXT($1;$2)
>> $0:=(Replace string ($1; $2; *) = “”)
>> 
>>> On Jun 20, 2018, at 3:05 PM, stardata.info <http://stardata.info/> via 
>>> 4D_Tech <4d_tech@lists.4d.com <mailto:4d_tech@lists.4d.com>> wrote:
>>> 
>>> I need to a function for use in a IF statement.
>>> For the moment, i have done a function that make a confront char by char.
>>> 
>>> Thanks
>>> Ferdinando
>>> 
>>> 
>>> Message: 1
>>> Date: Wed, 20 Jun 2018 13:38:22 -0400
>>> From: Chuck Miller>> <mailto:cjmil...@informed-solutions.com>>
>>> To: 4DTechList Tech<4d_tech@lists.4d.com <mailto:4d_tech@lists.4d.com>>
>>> Subject: Re: Uppercase Lowercase
>>> Message-ID:
>>>  >> <mailto:bde064c1-36c8-499e-ad31-a9a7a2ba5...@informed-solutions.com>>
>>> Content-Type: text/plain;charset=us-ascii
>>> 
>>> If using sql you can select case sensitivity, but be careful, as it will be 
>>> set for every sql query where clause
>>> 
>>> Regards
>>> 
>>> Chuck
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Counting lines of text

2018-06-27 Thread Keith Culotta via 4D_Tech
That sounds like a job for TEXT TO ARRAY ( varText ; arrText ; width ; fontName 
; fontSize {; fontStyle {; *}} ) 

Keith - CDI

> On Jun 27, 2018, at 4:31 PM, Pat Bensky via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I have a need to know how many lines a block of text will occupy.
> Given:
> - the plain text
> - the font
> - font size
> - text area width
> 
> I'm thinking it should be possible to do this by creating a WritePro
> object, adding the text and setting the various parameters - this would
> create an accurate representation of the formatted text. But having done
> that, how to find out the no. of lines?
> 
> ​Using v16r6​
> 
> ​Pat​
> 
> -- 
> *
> CatBase - Top Dog in Data Publishing
> tel: +44 (0) 207 118 7889
> w: http://www.catbase.com
> skype: pat.bensky
> *
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: 4D Write licensing...

2018-06-28 Thread Keith Culotta via 4D_Tech
As I recall, any interaction with aWrite document requires the user to have a 
license.  You could store a PDF copy of a document for others to print or view.

Keith - CDI

> On Jun 28, 2018, at 2:47 PM, Robert ListMail via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> I appreciate your response; however, this does not answer my question. If I 
> have one license and the 4D Write user is logged in and can edit 4D Write 
> documents because he’s part of the proper group controlling plugin access... 
> can a second user simultaneously print a pre-existing document without a 
> license?
> 
> Thanks,
> 
> Robert
> 
> Sent from my iPhone
> 
>> On Jun 28, 2018, at 9:21 AM, Keisuke Miyako via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> I would invite you to take a look at this chapter:
>> 
>> http://doc.4d.com/4Dv16R6/4D/16-R6/Managing-users-and-groups.300-3561552.en.html
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Quitting without IP var?

2018-07-03 Thread Keith Culotta via 4D_Tech
If using v17, shared Storage solves the problem.  It takes the place of IP vars.
http://livedoc.4d.com/4D-Language-Reference-17/Objects-Language/Storage.301-3730714.en.html

  // 
  // Method: setQuit
  // INPUT1: Boolean - Quit? 
  // 
C_BOOLEAN($1)

Use (Storage)
Storage.base:=New shared object
Use (Storage.base)
Storage.base.FQUIT:=$1
End use 
End use 


  // 
  // Elsewhere...
  // 
Repeat 
  // do deamon stuff
Until (Storage.base.FQUIT)

Keith - CDI



> On Jul 3, 2018, at 2:27 PM, Dani Beaubien via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Have you looked at the 4d command "Process aborted”?
> 
> 
>> On Jul 3, 2018, at 1:18 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
>> wrote:
>> 
>> My Question is:
>> How are you signaling to your stored procedures (Deamons) that the user 
>> is existing, without using an IP var?
>> 
>> Currently I am using an IP Var which is set in the Quit method.
>> This IP var is referenced in all of my 'Deamons' in a repeat loop
>> 
>> Repeat
>> // do deamon stuff
>> until (<>f_Quit)
>> 
>> With this IP var sitting in all my deamons - this makes all of that 
>> code thread unsafe.
>> I would like to re-work this code to b more multiprocessor friendly.
>> 
>> Thanks
>> Chip
>> 
>> ---
>> Gas is for washing parts
>> Alcohol is for drinkin'
>> Nitromethane is for racing 
>> **
>> 4D Internet Users Group (4D iNUG)
>> FAQ:  http://lists.4d.com/faqnug.html
>> 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)
> FAQ:  http://lists.4d.com/faqnug.html
> 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: UUID version 4 needed

2018-07-06 Thread Keith Culotta via 4D_Tech
$a:=Substring(Generate UUID;13;1)
ALERT($a)

Mac 16.225201 64bit - returns a "4" (client/server)
Mac 17.224978 64bit - returns a "4"

Char 15 is random.

v16 tested on Macs of various ages and 10.12, 10.13.

Keith - CDI

> On Jul 6, 2018, at 10:33 AM, Piotr Chabot Stadhouders via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Hi,
> 
> The Win32API command sys_GetGUID does return a version 4 UUID
> 
> So on Windows :
> Win32API generates a version 4 UUID --> 13th hex digit is a 4
> 4D v16 does not generate a version 4 UUID --> 15th hex digit is a 4

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: New way to get into Design Mode - v16?

2018-07-09 Thread Keith Culotta via 4D_Tech
Where the menu was empty before, the standard action "design" could be added to 
it.

Keith - CDI

> On Jul 9, 2018, at 10:54 AM, Bob Miller via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I'm digging through the docs - is there a new way to get into the Design 
> mode in v16?
> 
> Up to v15, choosing a menu item with no associated method and no standard 
> action would do the job, but this doesn't work in v16.
> 
> I can Shift+Alt+Right Click and choose 'Go to Design Mode' - but clearly I 
> missed something in the docs...
> 
> Thanks,
> 
> 
> Bob Miller
> Chomerics, a division of Parker Hannifin Corporation
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Drag n drop between processes

2018-07-10 Thread Keith Culotta via 4D_Tech
Hope this is on topic...

During : (Form event=On Begin Drag Over) in the source list, I put the 
information about the item being dragged on the Pasteboard
LOAD RECORD([Item])
C_OBJECT($obj)
OB SET($obj;"$rec";Record number([Item]))
OB SET($obj;"$proc";Current process)
OB SET($obj;"$source";"LocEdit")
$text:=JSON Stringify($obj)
  // set your data type
SET TEXT TO PASTEBOARD($text)


Later on in the destination process, mouse button just up from On Begin Drag 
Over, the information was read back out...
: (Form event=On Drop)
  // check here to see if it's your data type on the 
clipboard
C_OBJECT($obj)
$obj:=JSON Parse(Get text from pasteboard)
$rec:=OB Get($obj;"$rec";Is longint)
$proc:=OB Get($obj;"$proc";Is longint)
$source:=OB Get($obj;"$source";Is text)

If ($proc#Current process) & ($source="LocEdit")...

Keith - CDI

> On Jul 10, 2018, at 12:43 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> 
> Context: dragging 1 (or more) records/rows from a selection listbox to 
> another form in another process. 4D v13.
> 
> I know, and can see by using GET PASTEBOARD DATA TYPE, and GET 
> PASTEBOARD DATA that if I drag a line/record from a selection listbox 
> to another process there is "stuff" put on the pasteboard.
> 
> (native data types)
> com.4d.private.pid  -- 4bytes
> com.4d.private.form.object  -- 510bytes
> 
> what I do not know, is how do I use the data on the pasteboard.
> Can someone help?
> 
> Thanks
> Chip
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Who’s got the gazpacho?

2018-07-19 Thread Keith Culotta via 4D_Tech
Sorry, looking for the Paula Deen list.

Keith - CDI

**
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
**

Re: Listbox Type?

2018-07-24 Thread Keith Culotta via 4D_Tech
Maybe this command : 
http://doc.4d.com/4Dv17/4D/17/LISTBOX-GET-TABLE-SOURCE.301-3730224.en.html

Keith - CDI



On Jul 24, 2018, at 11:56 AM, Bob Miller via 4D_Tech <4d_tech@lists.4d.com> 
wrote:

Hi Everyone,

Is there a way to tell through the language whether a listbox is an "Array 
Type" listbox or a "Field Type" listbox?

I have a listbox that is a "Field Type" listbox, but all it contains is 
formulas that point to fields, so I'm having fits trying to find out how 
to identify the type through code...


Thanks,


Bob Miller
phone 781-939-4726 · mobile 781-316-4864 

**
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
**

Re: Memory leak with dynamic variables in list boxes?

2018-07-27 Thread Keith Culotta via 4D_Tech
Would something like this help...

ARRAY REAL(aFoot;0)  // Use this array to give each column a unique REAL footer 
var

 in the loop 
Append To Array(aFoot;0)
LISTBOX INSERT 
COLUMN(*;$lbName;$i;"C"+$iStr;$nilPtr;"H"+$iStr;$nilPtr;"Foot"+$iStr;aFoot{Size 
of array(aFoot)}) 
 in the loop 

Keith - CDI

> On Jul 27, 2018, at 10:35 AM, mferguson--- via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi,
> 
> Thank you for all your responses. I just need to get past this final road 
> block.
> 
> I have gotten dynamic variables to work on headers and footers with the 
> exception of the LISTBOX SET FOOTER CALCULATION.
> 
> Miyako pointed out that the default type for footers is text, and to change 
> it I have to use VARIABLE TO VARIABLE.
> 
> The documentation, in connection with retyping dynamic variables, describes 
> this as 
> if(form event=on load)
> 
> c_text($Init)
> $Ptr_Object:=OBJECT GET POINTER(Object named;”Comments”)
> $init:=””
> VARIABLE TO VARIABLE($Ptr_Object->; init)
> 
> end if
> 
> The documentation also says the dynamic variable can be subsequently be 
> referred to in the manner
> 
> $p:=object get pointer(object named;”start”)
> $p:=?12:00:00?
> 
> I am using an EMPTY current selection listbox on load, footers enabled, with 
> columns being assigned in a loop for the number of columns, using INSERT 
> LISTBOX COLUMN. The example above seems to presume that the column is already 
> assigned in the listbox, but modeling after the above within the loop:
> if(column = the one I want a footer total for)
> c_longint($Init)
> $Ptr_Object:=OBJECT GET POINTER(Object named;”Invoice Amount”)
> $init:=””
> VARIABLE TO VARIABLE($Ptr_Object->; init)
> 
> end if
> 
> This is in client server mode.
> 
> Please verify that the object should be the column name used in INSERT 
> LISTBOX COLUMN, or alternatively, the footer column name.
> 
> I have tried this with getting a pointer to the footer column name used in 
> INSERT LISTBOX COLUMN, and using the dynamically assigned footer name 
> retrieved with GET LISTBOX ARRAYS.
> 
> I get error 54.
> 
> Once I get by this problem I should be able to use
> 
> LISTBOX SET FOOTER CALCULATION(*;XXX;listbox footer sum)
> 
> where XXX is either the footer object name submitted with INSERT LISTBOX 
> COLUMN, or the dynamic footer name retrieved with GET LISTBOX ARRAYS. I don’t 
> know which.
> 
> Thanks,
> 
> Michael
> 
> 
> 
>> On Jul 26, 2018, at 4:30 PM, Keisuke Miyako via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> dynamic variables create for footers are typed as text by default.
>> 
>> you need to change it to numeric by replacing it using VARIABLE TO VARIABLE.
>> 
>> 2018/07/27 7:34、mferguson--- via 4D_Tech 
>> <4d_tech@lists.4d.com>のメール:
>> Seems like it should be simple, but I’m missing something.
>> 
>> 
>> 
>> **
>> 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
**

Re: V17 and Edit menu (Copy)

2018-08-09 Thread Keith Culotta via 4D_Tech
I just had an instance (v17 Mac) where "command C" and "command V" to copy and 
paste some form objects between two forms had no effect.  It worked when I used 
the menus with the mouse.  That also seems to have cured the problem.  This 
happens on such rare occasions that I've been blaming my keyboard (which hasn't 
had this problem in other apps).

Keith - CDI

> On Aug 9, 2018, at 11:58 AM, Jeffrey Kain via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Is anyone else experiencing a problem in 4D v17 on Mac where the Copy menu 
> item in the Edit menu becomes disabled permanently until a restart of 4D?
> 
> **
> 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
**

Re: SVG IDs in Listbox Cells

2018-08-14 Thread Keith Culotta via 4D_Tech
Can you then

$svg:=SVG_Open_picture (agRM_Graph{1})
$ref:=SVG_Find_ID ($svg;"Value1")
SVG_SET_ATTRIBUTES ($ref;"fill-opacity";"1";"stroke-opacity";"1")
agRM_Graph{1}:=SVG_Export_to_picture ($svg)

?


Keith - CDI

> On Aug 14, 2018, at 9:40 AM, Cannon Smith via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Thanks for everyone who commented on this.
> 
> It is actually _almost_ doable. With some math it is possible to figure out 
> where the cursor is over a particular picture cell and "SVG Find element ID 
> by coordinates” works in this context. For example:
> 
>   $tID:=SVG Find element ID by coordinates(agRM_Graph{1};$x;$y)
> 
> returns the ID the mouse is over.
> 
> The part that does not work is the command SVG SET ATTRIBUTE. For example:
> 
>   SVG SET 
> ATTRIBUTE(agRM_Graph{1};"Value1";"fill-opacity";"1";"stroke-opacity";"1”)
> 
> does not work. This kills an idea I was _really_ hoping would work. Sigh.
> 
> I find it interesting that SVG Find element ID by coordinates works and SVG 
> SET ATTRIBUTE doesn’t work in this context. It seems logical to me that 
> either they would both work or neither would work in this context.
> 
> --
> Cannon.Smith
> Synergy Farm Solutions Inc.
> Hill Spring, AB Canada
> 403-626-3236
> 
> 
> 
> 
>> On Aug 13, 2018, at 4:14 PM, Keisuke Miyako via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> moreover, commands such as SVG GET/SET ATTRIBUTES,
>> which are closely associated with ID based SVG manipulation,
>> requires an object name or variable,
>> but a cell inside a listbox are not accessible that way.
> 
> **
> 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
**

Re: Anyone using FTP_Receive under 64-bit?

2018-08-15 Thread Keith Culotta via 4D_Tech
FTP_Receive used to show the progress of the download.  That is no longer 
available, and I think throws an error if it's used.

I think the cURL plugin shows the progress, or allows you to figure it out 
somehow.

Keith - CDI

> On Aug 15, 2018, at 4:10 PM, Allan Udy via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi all,
> 
> I'm having a problem with Internet Commands FTP_Receive under 64-bit -- the 
> command immediately returns a -2201 error and nothing is received (on Mac and 
> Windows).
> 
> Using 4D v16R6 32-bit, the code works fine and files can be received. Same 
> code using v16R6 64-bit fails.  The 64-bit version will successfully log in 
> to the FTP site, and will retrieve a directory listing etc, but will not 
> allow file download.
> 
> I've checked that the correct IC bundle is installed.  Have also tested with 
> v16rR4 and v16.3. Have tested with two different FTP sites. Same issue.
> 
> Anyone else seeing this?  Anyone successfully using FTP_Receive under 64-bit.
> 
> What are the advantages/disadvantages of re-writing the code to use Keisuke 
> Miyako’s cURL FTP plugin?
> 
> 
> Cheers,
> Allan Udy
> 
> Golden Micro Solutions Ltd, Blenheim, New Zealand
> http://www.golden.co.nz
> 
> **
> 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
**

Re: How to show subtotals in a list box

2018-08-20 Thread Keith Culotta via 4D_Tech
Starting at the top and working down an array based listbox:

A column could be "manually" subtotaled by inserting rows at the break points 
of a sorted column.  These rows would need a marker in an invisible column so 
they could be deleted in the next sort or selection change.

Or add a numeric column to the right of the numeric column to be subtotaled, 
and put each subtotal in the last break line. As you go down the list, a zero 
or a subtotal amount could be put in each Nth cell.

Keith - CDI

> On Aug 20, 2018, at 4:05 PM, Dani Beaubien via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> My situation is that I have a list box that has 1 level of break rows and I 
> have been asked to add a subtotal of the rows within each break level.
> 
> I am looking for suggestions on how to approach this?
> 
> Thanks in advance.
> 
> Dani Beaubien


**
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
**

Re: Sending Text Messages From 4D

2018-08-22 Thread Keith Culotta via 4D_Tech
This has been working for us, but we only use it occasionally. 

$err:=SMTP_QuickSend 
($Host;$FromAddress;$msgTo;$subject;$message;0;25;$vAuthUserName;$sequence) 
where $msgTo is a text/phone# like 555...@vtext.com

Keith - CDI

> On Aug 22, 2018, at 9:04 AM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I have a client that has asked me to add the option to send text messages to 
> cell phones from 4D. I know this is possible via some websites or web 
> services for a fee. Has anyone done this and can recommend a web service that 
> you were able to use from 4D to do this?
> 
> Tim
> 
> *
> Tim Nevels
> Innovative Solutions
> 785-749-3444
> timnev...@mac.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
**

Re: SVG - Simple Example

2018-08-24 Thread Keith Culotta via 4D_Tech
A basic approach could be like this:

---
C_TEXT($svg;$ref)
C_PICTURE($pict)

$svg:=SVG_New // this new svg document is referred to as "$svg"
$ref:=SVG_New_rect ($svg;10;10;100;100)  // refer to this new rectangle in 
"$svg" as "$ref"
SVG_SET_FILL_BRUSH ($ref;"red")
$pict:=SVG_Export_to_picture ($svg)  // get it to a picture variable
SVG_CLEAR ($svg)

SET PICTURE TO PASTEBOARD($pict)
INVOKE ACTION(ak show clipboard)
---

Keith - CDI

> On Aug 24, 2018, at 10:32 AM, Ed Glassgow via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Good morning all,
> 
> Can someone direct me to very simple SVG example?
> 
> Thanks!
> 
> Ed Glassgow
> glass...@pcisys.net
> 
> 
> 
> **
> 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
**

Line count - compiled component vs interpreted

2018-08-24 Thread Keith Culotta via 4D_Tech
Hello,

A compiled component of mine is throwing an error message from within a host 
database.
It is correct to display the error message under its current conditions.
However, the error is reported on line 35 of the offending method, but the 
method has only 25 lines, blank lines and all.

Any ideas as to why the line count might display like this?

Thanks,
Keith - CDI
**
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
**

Re: Line count - compiled component vs interpreted

2018-08-24 Thread Keith Culotta via 4D_Tech
Thanks!  That makes sense.

Keith - CDI

> On Aug 24, 2018, at 3:12 PM, lists via 4D_Tech <4d_tech@lists.4d.com> wrote:
> 
> Hi,
> 
> From what I was able to decipher in similar instances, it seems to be the 
> line number in the method that calls the component method.
> 
> It's very (un)helpful and it's even worse if you do have more lines in the 
> component method, as you can spend a lot of time trying to debug something 
> like $i:=1, when in fact it has nothing to do with that line...
> 
> Cheers,
> 
> Lahav 
> 
> -Original Message-----
> From: 4D_Tech <4d_tech-boun...@lists.4d.com> On Behalf Of Keith Culotta via 
> 4D_Tech
> Sent: Friday, August 24, 2018 11:10 AM
> To: 4D iNug Technical <4d_tech@lists.4d.com>
> Cc: Keith Culotta 
> Subject: Line count - compiled component vs interpreted
> 
> Hello,
> 
> A compiled component of mine is throwing an error message from within a host 
> database.
> It is correct to display the error message under its current conditions.
> However, the error is reported on line 35 of the offending method, but the 
> method has only 25 lines, blank lines and all.
> 
> Any ideas as to why the line count might display like this?
> 
> Thanks,
> Keith - CDI
> **
> 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
**

Re: New record numbering system and CALL WORKER

2018-08-27 Thread Keith Culotta via 4D_Tech
Does the speed penalty apply to reading values from Storage, or just to writing 
values to Storage?

Thanks,
Keith - CDI

> On Aug 26, 2018, at 8:57 AM, John DeSoi via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Storage is the best option for interprocess communications if you want to use 
> preemptive processes.

**
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
**

Using a custom namespace in SVG

2018-09-17 Thread Keith Culotta via 4D_Tech
I'm taking a shot at using a custom namespace, but can't find an example of its 
implementation in 4D SVG.
Experimenting, I noticed that all three attributes below assigned with 
SVG_SET_ATTRIBUTES worked without returning an error when created, when used 
with SVG_GET_ATTRIBUTES, or when opened in Chrome and Safari.

Are all of these forms "legal"?

-
$svg:=SVG_New 
SVG_ADD_NAMESPACE ($svg;"declaredNS";"http://www.somewhere.com";)
$ref:=SVG_New_rect ($svg;10;10;100;100)

SVG_SET_ATTRIBUTES ($ref;\
  "declaredNS:myAtt";"AnyAtt";\
  "ThisNSWorks:myAtt";"AnyAtt";\
  "andThisWorks";"AnyAtt")

SVG_CLEAR ($svg)
-

Yields this:
 rect ThisNSWorks:myAtt="AnyAtt" andThisWorks="AnyAtt" 
declaredNS:myAtt="AnyAtt" fill="white" height="100" stroke="black" width="100" 
x="10" y="10"

Thanks - Keith - CDI
**
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
**

Re: can an array be added to a Form's object list i.e. Form.Array?

2018-10-02 Thread Keith Culotta via 4D_Tech
You can save ChoicesArray to the Form object with OB SET 
ARRAY(Form;"myarr";ChoicesArray).
http://doc.4d.com/4Dv17/4D/17/OB-SET-ARRAY.301-3730702.en.html

Also 'JSON Stringify array' will produce a string that can be reconstituted 
with JSON PARSE ARRAY.
  FORM.myarr:=$stringifiedArray
http://doc.4d.com/4Dv17/4D/17/JSON-PARSE-ARRAY.301-3730390.en.html

Keith - CDI

> On Oct 2, 2018, at 2:42 PM, Chris Belanger via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I am trying to make a ComboBox object that is local to the Form. Hence I need 
> the Array to be a Form. object
> 
> ARRAY TEXT(Form.ChoicesArray;0) does not work;
> 
> Trying to get the data into a COLLECTION and then use COLLECTION TO ARRAY 
> (which should define the array easily) does not work:
> 
> Form.col_UnitTypes:=ds.Unit_Type.all().orderBy("Name 
> asc").toCollection("Name";dk with primary key)   
> COLLECTION TO ARRAY(Form.col_UnitTypes;Form.box_Type_Unit;"Name") 
> 
> does not work ("4D was expecting a Variable" error).
> 
> 
> Is there now way to set up an ARRAY for Form.Array usage?
> 
> Thanks for any observations,
> 
> Chris
> 
> 
> **
> 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
**

Re: can an array be added to a Form's object list i.e. Form.Array?

2018-10-02 Thread Keith Culotta via 4D_Tech
or for each value of ChoicesArray: OB SET(Form;"ChoicesArray"+string($i); 
ChoicesArray{$i}) ?

Keith 

> On Oct 2, 2018, at 3:10 PM, Keith Culotta via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> You can save ChoicesArray to the Form object with OB SET 
> ARRAY(Form;"myarr";ChoicesArray).
> http://doc.4d.com/4Dv17/4D/17/OB-SET-ARRAY.301-3730702.en.html
> 
> Also 'JSON Stringify array' will produce a string that can be reconstituted 
> with JSON PARSE ARRAY.
>  FORM.myarr:=$stringifiedArray
> http://doc.4d.com/4Dv17/4D/17/JSON-PARSE-ARRAY.301-3730390.en.html
> 
> Keith - CDI
> 
>> On Oct 2, 2018, at 2:42 PM, Chris Belanger via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> I am trying to make a ComboBox object that is local to the Form. Hence I 
>> need the Array to be a Form. object
>> 
>> ARRAY TEXT(Form.ChoicesArray;0) does not work;
>> 
>> Trying to get the data into a COLLECTION and then use COLLECTION TO ARRAY 
>> (which should define the array easily) does not work:
>> 
>> Form.col_UnitTypes:=ds.Unit_Type.all().orderBy("Name 
>> asc").toCollection("Name";dk with primary key)  
>> COLLECTION TO ARRAY(Form.col_UnitTypes;Form.box_Type_Unit;"Name")
>> 
>> does not work ("4D was expecting a Variable" error).
>> 
>> 
>> Is there now way to set up an ARRAY for Form.Array usage?
>> 
>> Thanks for any observations,
>> 
>> Chris
>> 
>> 
>> **
>> 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
**

Re: can an array be added to a Form's object list i.e. Form.Array?

2018-10-02 Thread Keith Culotta via 4D_Tech
I'm new enough with collections and entities not to have a good sense of what 
techniques are most efficient.  I have been thinking of Form as a communication 
vehicle to be loaded and unloaded, and a way to avoid process variables.
Arrays would need to be packed and unpacked, but Example 11 on page 
http://doc.4d.com/4Dv17/4D/17/OB-SET.301-3730704.en.html makes me want to try 
using Form.CollectionName[n] too.

Keith 

> On Oct 2, 2018, at 4:03 PM, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Keith,
> Sure, if having the choice list in the data object is relevant. Depends on
> how the form is set up I think. Typically I would pass a data object to a
> form or subform to be populated with data or allow the user to edit it. I
> make the form for a particular kind of operation. Right now I'm working on
> Payments so I've got a main Payment form and a few subforms that manage
> some aspect of a payment. Like credit card entry, manual entry, static
> display and so on. So things like popups or combo boxes are static or
> dynamic within a range and the content is determined by the kind of form.
> All I care about getting into the data object is whatever choice is made.
> 
> It sounds like you're describing a situation where the data object includes
> things like the choice lists.
> 
> It's not a case of one being better than the other, more a case of
> different approaches to managing the form.
> 
> On Tue, Oct 2, 2018 at 1:28 PM Keith Culotta via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> or for each value of ChoicesArray: OB SET(Form;"ChoicesArray"+string($i);
>> ChoicesArray{$i}) ?
>> 
>> Keith
>> 
>>> On Oct 2, 2018, at 3:10 PM, Keith Culotta via 4D_Tech <
>> 4d_tech@lists.4d.com> wrote:
>>> 
>>> You can save ChoicesArray to the Form object with OB SET
>> ARRAY(Form;"myarr";ChoicesArray).
>>> http://doc.4d.com/4Dv17/4D/17/OB-SET-ARRAY.301-3730702.en.html
>>> 
>>> Also 'JSON Stringify array' will produce a string that can be
>> reconstituted with JSON PARSE ARRAY.
>>> FORM.myarr:=$stringifiedArray
>>> http://doc.4d.com/4Dv17/4D/17/JSON-PARSE-ARRAY.301-3730390.en.html
>>> 
>>> Keith - CDI
>>> 
>>>> On Oct 2, 2018, at 2:42 PM, Chris Belanger via 4D_Tech <
>> 4d_tech@lists.4d.com> wrote:
>>>> 
>>>> I am trying to make a ComboBox object that is local to the Form. Hence
>> I need the Array to be a Form. object
>>>> 
>>>> ARRAY TEXT(Form.ChoicesArray;0) does not work;
>>>> 
>>>> Trying to get the data into a COLLECTION and then use COLLECTION TO
>> ARRAY (which should define the array easily) does not work:
>>>> 
>>>> Form.col_UnitTypes:=ds.Unit_Type.all().orderBy("Name
>> asc").toCollection("Name";dk with primary key)
>>>> COLLECTION TO ARRAY(Form.col_UnitTypes;Form.box_Type_Unit;"Name")
>> 
>>>> 
>>>> does not work ("4D was expecting a Variable" error).
>>>> 
>>>> 
>>>> Is there now way to set up an ARRAY for Form.Array usage?
>>>> 
>>>> Thanks for any observations,
>>>> 
>>>> Chris
>>>> 

**
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
**

Re: Shared Object - NOT!

2018-10-22 Thread Keith Culotta via 4D_Tech
If a method creates an object ($no:=new object), the object is destroyed when 
the method ends?
and
if a method creates a new shared object ($nso:=new shared object), the object 
continues to exist after the method ends, but the reference to it is lost?  
Does 4D know to clear the object in this case?

Keith - CDI

> On Oct 20, 2018, at 11:28 PM, Keisuke Miyako via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> I prefer to explain it this way:
> 
> when you pass a New object or New collection  to a method (subroutine),
> that object or collection is shared between the 2 methods, caller and callee,
> because they are running in the same process.
> 
> if you execute $1.foo:="bar" in the callee,
> the object from the caller is also updated,
> because they are in fact referenced to the same object.
> 
> if you do the same across processes,
> i.e. pass a New object or New collection to New process, CALL WORKER or CALL 
> FORM,
> the object or collection is not shared between the 2 methods, caller and 
> callee,
> because they are not running in the same process.
> 
> the best way to share an object or collection between processes is to pass a 
> shared object or shared collection as a parameter.
> there is no need to use Storage, there is no need to use interprocess 
> variables.
> you just create a shared object or shared collection, and pass it as an 
> argument to another process or worker.
> the received object is not a copy, it is a shared reference to the same 
> shared object.
> 
> Storage is not mandatory, if you always pass shared objects using parameters,
> which is good practice, according the law of Demeter.
> 
> https://en.wikipedia.org/wiki/Law_of_Demeter
> 
> the reason why Storage often pops up in the context of interprocess variables,
> is because we recognise that in many applications, interprocess variables are 
> casually references all over the place.
> it is provided as a last resort, a global shared object to which you can 
> attach all your shared objects
> so that you can access them from anywhere in your code, without using 
> parameters.
> 
>> 2018/10/21 13:11、lists via 4D_Tech <4d_tech@lists.4d.com>のメール:
>> 
>> In order to share an object between processes without using an interprocess 
>> variable, you must use the "Storage" container/catalog.
> 
> 
> 
> 
> **
> 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
**

Re: Icon & Picture Button Sources...

2018-10-24 Thread Keith Culotta via 4D_Tech
Here's a simple example inspired by the 4d-component-generate-icon.

//-
$width:=3
$opacity:=80
$rw:=40

$color:="black"  // normal
$svg:=SVG_New (58;58)
$ref:=SVG_New_rect ($svg;9;9;$rw;$rw;2;2;$color;"white";$width)
SVG_SET_OPACITY ($ref;0;$opacity)
$normal:=SVG_Export_to_picture ($svg)
SVG_CLEAR ($svg)

$color:="green"  // click
$svg:=SVG_New (58;58)
$ref:=SVG_New_rect ($svg;9;9;$rw;$rw;2;2;$color;"white";$width)
SVG_SET_OPACITY ($ref;0;$opacity)
$click:=SVG_Export_to_picture ($svg)
SVG_CLEAR ($svg)

$color:="deepskyblue"  // hover
$svg:=SVG_New (58;58)
$ref:=SVG_New_rect ($svg;9;9;$rw;$rw;2;2;$color;"white";$width)
SVG_SET_OPACITY ($ref;0;$opacity)
$hover:=SVG_Export_to_picture ($svg)
SVG_CLEAR ($svg)

$color:="silver"  // disable
$svg:=SVG_New (58;58)
$ref:=SVG_New_rect ($svg;9;9;$rw;$rw;2;2;$color;"white";$width)
SVG_SET_OPACITY ($ref;0;$opacity)
$disabled:=SVG_Export_to_picture ($svg)
SVG_CLEAR ($svg)


$pict:=$normal/$click/$hover/$disabled  // this creates the "4 state" picture!

TRANSFORM PICTURE($pict;Scale;0.66;0.66)  // size to fit
CONVERT PICTURE($pict;".png")// allows pasting into Preview

$0:=$pict

// SET PICTURE TO PASTEBOARD($pict)
// SVGTool_SHOW_IN_VIEWER ($svg)

//-

Keith -CDI

> On Oct 23, 2018, at 6:47 PM, Robert ListMail via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Hi Tim thanks for the reminder. I recall liking your interface design. So, 
> are you using the various button states where 4D has the ability to swap the 
> images during different states such as “rollover”? If so, did you have to 
> create two or three different versions of each icon for matrix of images…?
> 
> Thanks,
> 
> Rob
> 
>> On Oct 23, 2018, at 2:04 PM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> 
>> wrote:
>> 
>> https://glyphlab.com 
>> 
>> You have to pay money, but for me it was worth it as I paid once and got a 
>> library of high quality images I’ve been using for years in all my projects. 
>>  For me, well worth the one time price.
>> 
>> Tim
> 
> **
> 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
**

Re: Longing IDs or UUIDs as primary key?

2018-10-24 Thread Keith Culotta via 4D_Tech
RE: never use them to link between tables

Is using them to link between tables (establish 4D Relations, correct?) a 
hazardous practice? 

Thanks,
Keith - CDI

> On Oct 24, 2018, at 10:49 AM, Charles Miller via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Rudy
> 
> For me this always choose UUID for primary key and never use them to link
> between tables. The overhead from space is not so great Andy I never want
> to type in uuid to find related records etc
> 
> Regards
> 
> Chuck
> 
> On Wed, Oct 24, 2018 at 10:52 AM Two Way Communications via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> I have an application with a big database file ( + 60 GB), with 128
>> tables. (4D v17)
>> 
>> All id fields and foreign keys are of type longint.
>> 
>> Now, for replication and sharing purposes, I would like to change the type
>> to UID.
>> 
>> The process seems quite cumbersome: to start, I need to remove the
>> ‘primary key’ flag from all the ID fields, then I need to add UID fields to
>> every table,
>> change the foreign keys as well, and use apply formula to make sure the
>> relations are intact. I am a bit worried that this will have a major impact
>> on the size of the data file.
>> 
>> Furthermore, I need to automate the whole process so the upgrade works
>> flawlessly at the customers site.
>> 
>> Has anyone ever done this?
>> Any tips?
>> 
>> Regards,
>> 
>> Rudy Mortier
>> Two Way Communications bvba
>> 
>> 

**
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
**

Re: Longing IDs or UUIDs as primary key?

2018-10-24 Thread Keith Culotta via 4D_Tech
[some emoji that expresses a slight sense of relief, but not necessarily a 
feeling of being surprised]

> On Oct 24, 2018, at 11:01 AM, Jeffrey Kain via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> No it isn't.
> 
>> On Oct 24, 2018, at 11:59 AM, Keith Culotta via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> Is using them to link between tables (establish 4D Relations, correct?) a 
>> hazardous practice?
> 

**
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
**

Re: Longing IDs or UUIDs as primary key?

2018-10-24 Thread Keith Culotta via 4D_Tech
Here's a possible approach to automating, but it depends last question.
If you change a longint to an alpha field, the new new alpha field retains the 
longint value.
You could send the modified Structure with the longint fields changed to alpha.
When the Structure sees that a Datafile is not converted, for each related 
field it 
  remembers the longint value in the One Table's field
  creates and saves a UUID for the One Table's field
  queries the related using the old longint value
  changes the Many table's link field to the One Table's UUID.
  set the relations and Primary Keys*

Eventually marks the datafile as converted.

*Can SQL be used to set a Primary Key for a table that has none?

Keith - CDI

> On Oct 24, 2018, at 9:52 AM, Two Way Communications via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> I have an application with a big database file ( + 60 GB), with 128 tables. 
> (4D v17)
> 
> All id fields and foreign keys are of type longint. 
> 
> Now, for replication and sharing purposes, I would like to change the type to 
> UID.
> 
> The process seems quite cumbersome: to start, I need to remove the ‘primary 
> key’ flag from all the ID fields, then I need to add UID fields to every 
> table, 
> change the foreign keys as well, and use apply formula to make sure the 
> relations are intact. I am a bit worried that this will have a major impact 
> on the size of the data file.
> 
> Furthermore, I need to automate the whole process so the upgrade works 
> flawlessly at the customers site.
> 
> Has anyone ever done this?
> Any tips?
> 
> Regards,
> 
> Rudy Mortier
> Two Way Communications bvba 
 
**
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
**

Re: Longing IDs or UUIDs as primary key?

2018-10-24 Thread Keith Culotta via 4D_Tech
Sorry, forgot the UUID properties would still have to be set for the fields 
after all that.  Again, SQL?
Name it the "No way, YOU click the 'OK to Update' button" method.

> On Oct 24, 2018, at 12:01 PM, Keith Culotta via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Here's a possible approach to automating, but it depends last question.
> If you change a longint to an alpha field, the new new alpha field retains 
> the longint value.
> You could send the modified Structure with the longint fields changed to 
> alpha.
> When the Structure sees that a Datafile is not converted, for each related 
> field it 
>  remembers the longint value in the One Table's field
>  creates and saves a UUID for the One Table's field
>  queries the related using the old longint value
>  changes the Many table's link field to the One Table's UUID.
>  set the relations and Primary Keys*
> 
> Eventually marks the datafile as converted.
> 
> *Can SQL be used to set a Primary Key for a table that has none?
> 
> Keith - CDI
> 
>> On Oct 24, 2018, at 9:52 AM, Two Way Communications via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> I have an application with a big database file ( + 60 GB), with 128 tables. 
>> (4D v17)
>> 
>> All id fields and foreign keys are of type longint. 
>> 
>> Now, for replication and sharing purposes, I would like to change the type 
>> to UID.
>> 
>> The process seems quite cumbersome: to start, I need to remove the ‘primary 
>> key’ flag from all the ID fields, then I need to add UID fields to every 
>> table, 
>> change the foreign keys as well, and use apply formula to make sure the 
>> relations are intact. I am a bit worried that this will have a major impact 
>> on the size of the data file.
>> 
>> Furthermore, I need to automate the whole process so the upgrade works 
>> flawlessly at the customers site.
>> 
>> Has anyone ever done this?
>> Any tips?
>> 
>> Regards,
>> 
>> Rudy Mortier
>> Two Way Communications bvba 
>  

**
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
**

Re: Reindex

2018-11-06 Thread Keith Culotta via 4D_Tech
If you open the data file using your own copy of the structure, maybe your copy 
of the structure has a field indexed that the client's copy does not have 
indexed?

Keith - CDI

> On Nov 6, 2018, at 11:52 AM, stardata.info via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> 1 - I select the tre files
> 2 - Compact this files using winzip
> 3 - Take the zipped files and expand the files for use on my pc
> 
> 
> Il 06/11/2018 17:12, Dennis, Neil ha scritto:
 sometimes I need to take data files from one application running on
 some my customer without close the application.
>> It is best to either close the application and make a copy... or back it up 
>> and take a backup. When you copy it while it is running, more times than not 
>> it will be corrupted. Sometimes corruption will be OK depending on your use 
>> for the copy, but don't rely on it for a valid backup unless you use a 
>> backup or a copy when the database was not running.
>> 
>> Neil
>> 
>> 
>> 
>> 
>> 
>> 
>> --
>> 
>> 
>> Privacy Disclaimer: This message contains confidential information and is 
>> intended only for the named addressee. If you are not the named addressee 
>> you should not disseminate, distribute or copy this email. Please delete 
>> this email from your system and notify the sender immediately by replying to 
>> this email.  If you are not the intended recipient you are notified that 
>> disclosing, copying, distributing or taking any action in reliance on the 
>> contents of this information is strictly prohibited.
>> 
>> The Alternative Investments division of UMB Fund Services provides a full 
>> range of services to hedge funds, funds of funds and private equity funds.  
>> Any tax advice in this communication is not intended to be used, and cannot 
>> be used, by a client or any other person or entity for the purpose of (a) 
>> avoiding penalties that may be imposed on any taxpayer or (b) promoting, 
>> marketing, or recommending to another party any matter addressed herein.
> 
> **
> 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
**

Re: Listbox multiple select

2018-11-09 Thread Keith Culotta via 4D_Tech
Look here at the "Selection Mode" section of the Listbox's Property list.
 
http://doc.4d.com/4Dv16/4D/16.4/List-box-specific-properties.300-3998930.en.html

Keith - CDI

> On Nov 9, 2018, at 7:54 AM, vagelis fallias via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Hello all,
> how do I make a multiple selection in a listbox using the mouse? Using Click 
> and drag, is there a setting I m missing? or it doesn't do it?
> 
> Thanks
> **
> 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
**

Re: Making a selection

2018-11-09 Thread Keith Culotta via 4D_Tech
Nothing built in, but one option is to put an invisible rectangle on a form, 
and make it visible and act like a selection rectangle when the mouse goes 
down.  
Another is to overlay (or underlay) a form sized picture on the form and use 
SVG to produce the selection rectangle.  SVG is nice in that you can map the 
form's objects onto the SVG picture, use the form object names as the SVG ID, 
and use "SVG Find element IDs by rect" to get the selection.

Keith - CDI

> On Nov 9, 2018, at 8:36 AM, Peter Mew via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi
> My Prevoius post wasnt very clear.
> Im asking that the user can select an object or objects, by clicking on an
> object, say a rectangle, and draging it to change its size, for example.
> or the user can add multiple objects, by surrounding them with a box, to an
> array of object names.
> thanks
> -pm 

**
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
**

Re: Related Fields in a Listbox (Manual Relations)

2018-11-16 Thread Keith Culotta via 4D_Tech
These have worked:

  // ok
GET AUTOMATIC RELATIONS($o;$m)  // before the listbox displays
SET AUTOMATIC RELATIONS(True;$m)


  // better
: (Form event=On Display Detail)  // in the listbox method
   RELATE ONE([many]linkField)

Keith - CDI

> On Nov 16, 2018, at 12:54 PM, Sannyasin Siddhanathaswami via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Aloha all,
> 
> Is there a simple way to include related field (with Manual relations) in a 
> current selection listbox in v17?
> 
> Not sure why I haven’t done this before with listboxes.
> 
> Sannyasin Siddhanathaswami 

**
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
**

Re: Related Fields in a Listbox (Manual Relations)

2018-11-16 Thread Keith Culotta via 4D_Tech
Actually, "ok" and "better" are reversed in the examples.  More efficient to 
let the Automatic Relations do the work.

Keith - CDI

> On Nov 16, 2018, at 1:26 PM, Sannyasin Siddhanathaswami via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Thanks. Just what I needed!
> 
> Sannyasin Siddhanathaswami
> On Nov 16, 2018, 9:09 AM -1000, Keith Culotta via 4D_Tech 
> <4d_tech@lists.4d.com>, wrote:
> These have worked:
> 
> // ok
> GET AUTOMATIC RELATIONS($o;$m) // before the listbox displays
> SET AUTOMATIC RELATIONS(True;$m)
> 
> 
> // better
> : (Form event=On Display Detail) // in the listbox method
> RELATE ONE([many]linkField)
> 
> Keith - CDI
> 
> On Nov 16, 2018, at 12:54 PM, Sannyasin Siddhanathaswami via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Aloha all,
> 
> Is there a simple way to include related field (with Manual relations) in a 
> current selection listbox in v17?
> 
> Not sure why I haven’t done this before with listboxes.
> 
> Sannyasin Siddhanathaswami
> 
> **
> 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
**

Re: Which rows are selected?

2017-03-10 Thread Keith Culotta via 4D_Tech
listBox{$row}=true

Keith - CDI

> On Mar 10, 2017, at 1:56 PM, bob.miller--- via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi Everyone,
> 
> Call it Friday, call it memory loss, but don't call it lack of effort. 
> I've been scouring the docs looking for how, using an array-type listbox 
> with the 'Selection Mode = Multiple' attribute set, how can I detect which 
> rows are selected?
> 
> It's going to be a big 'ah, duh!' moment, but I just can't find it.
> 
> Thanks for the help -
> 
> 
> Bob Miller
> Chomerics, a division of Parker Hannifin Corporation
> 
> 
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: 4D freezing on print preview

2017-03-23 Thread Keith Culotta via 4D_Tech
Just to add a datapoint, 4D Mac v15.current seems to be the only app that 
causes Preview to unexpectedly quit when getting a print preview.  It does not 
affect 4D however.

Keith - CDI


> On Mar 23, 2017, at 4:07 PM, Keith Goebel via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> So, nobody else in the world has encountered this?
> That’s good for you but bad for me…
> 
>> Hi all.
>> We are using 4D v15.2 on Win7, Win10, Win Server 2012 (or similar). All good.
>> 
>> We have just tested 4D v15.4 and v15.4 HF1 and found both to freeze whenever 
>> we print preview a report.
>> All seems to work fine until about the point where 4D would hand off control 
>> to XPS Viewer, and then 4D freezes.
>> 
>> After force quit, starting the exact same structure (and data) with 4D v15.2 
>> and print preview works fine, so I don’t believe it is the XPS printer at 
>> fault.
>> 
>> We were in the final stages of testing our application prior to releasing a 
>> new version that was going to use 4D v15.4.
>> This show stopper has prevented that.
>> 4D Tech Support are unable to duplicate the problem.
>> 
>> Has anyone else seen this?
>> Did you find a way to fix it?
>> Cheers, Keith
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: y2038 -- is 4D ready?

2017-03-28 Thread Keith Culotta via 4D_Tech
I changed my system date to 1/1/2039 and started testing dates.  An android 
walked into my office and told me to cut it out.

Keith - CDI

> On Mar 28, 2017, at 10:37 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Just reading an article about the next Y2K - y2038.
> IN this year many systems that use 1970 as a base starting point for 
> time will exceed the 32bit integer used to track seconds.
> 
> Is 4D, natively, y2038 safe?
> 
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing  
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: "Placeholder" in property list

2017-04-22 Thread Keith Culotta via 4D_Tech
That new feature has been a help with clutter.  I was unable to use it a 
numeric field until the field's format was set to something where the zero 
value was hidden, like ";-;".  When the field does not have the focus, 
the placeholder appears.

Keith - CDI

> On Apr 22, 2017, at 8:37 AM, Jeffrey Kain via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Has anyone noticed that in 15.4 (HF2... maybe others) there's a new property 
> for fields and variables called 'Placeholder' that automatically fills an 
> empty field with descriptive text in a light gray font color, which 
> disappears when you type or the variable receives a value?
> 
> It's been awhile since I read the v15 documentation but I was surprised to 
> see it there!
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Counting # of specific characters in string/text

2017-05-05 Thread Keith Culotta via 4D_Tech
I haven't tested this for speed or unexpected conditions, but...

$a:="now is the timetime for all good men to come to the aid of their country"
$l1:=Length($a)

$b:="time"
$lb:=Length($b)

$a:=Replace string($a;$b;"";*)
$l2:=Length($a)

$l3:=$l1-$l2/$lb

ALERT(String($l3))


Keith - CDI

> On May 4, 2017, at 7:22 AM, Jörg Knebel via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi all
> 
> I’m wondering if someone has a clever routine to count the number of 
> appearances of a specific character/word in a string/text and is willing to 
> share it.
> 
> Thanks
> 
> Cheers
> Jörg
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: POINTER TO ARRAY

2017-05-10 Thread Keith Culotta via 4D_Tech
Try changing the line "c_pointer($vPoint->)" to "c_pointer($vPoint)", and make 
sure $X is set to "1" or "2".

Keith - CDI

> On May 10, 2017, at 4:39 PM, stardata.info via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi All,
> 
> I use 4D V13 on windows.
> This code in interpreted work, but in compiled application give an error:
> 
> c_pointer($vPoint->)
> 
> ARRAY STRING(12;$aCodMat_1;0)
> ARRAY STRING(12;$aCodMat_2;0)
> DISTINCT VALUES([TABLE]Cod;$aCodMat_1)
> DISTINCT VALUES([TABLE]Cod_1;$aCodMat_2)
> 
> 
> $vPoint:=Get pointer("$aCodMat_"+String($X))
> >   error on this command$R:=Size of array($vPoint->)
> 
> Someone know because?
> 
> Thanks
> Ferdinando
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Exploring CALL WORKER vs New process

2017-05-18 Thread Keith Culotta via 4D_Tech
Are there good reasons to keep using "New process" in a situation like the 
following, or can it be replaced by "CALL WORKER"?  

//--Base process that shows a list of records from [Table].  Pick a record and
$p:=New process("wOpen";0;[Table]PriKey;*)

//--wOpen - displays the record on the screen
$key:=$1
Query([Table];[Table]PriKey=$key)
$w:=Open Form Window("ShowRecord")
Dialog("ShowRecord")

Now, "Base process" would like to tell the new process to change a value in the 
record.
After "Base process" gets the value of $w, it could use "CALL FORM" to 
accomplish that.
However, if I had used: CALL WORKER ( [Table]PriKey ; wOpen) instead of "New 
process" to create the process, I could, with minor changes in wOpen, use "CALL 
WORKER" to get the process to change the record's values.

//--process that shows a list of records from [Table].  Pick a record and
CALL WORKER ( [Table]PriKey ; wOpen)

//--wOpen - displays the record on the screen
PROCESS PROPERTIES ( Current Process ; $key ; $p1 ; $p2 )// $key gets the 
Process Name
Query([Table];[Table]PriKey=$key)
$w:=Open Form Window("ShowRecord")
Dialog("ShowRecord")
KILL WORKER

Thanks,
Keith - CDI
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Exploring CALL WORKER vs New process

2017-05-18 Thread Keith Culotta via 4D_Tech
Kirk,

wOpen lets a user modify a record in a window in a new process.  This DB would 
have only a few records that could be picked from a floating list.

When the floating list process wants to change the record:
If the record is locked by a wOpen type process, the floating list could use 
CALL WORKER to send the change request to the process that has possession of 
the record.  If the record is not in use, the change could be made from the 
floating list (R/W, load record, change, unload, R/O).

To reduce chaos, a record will only be used by a single process.  
The process name would be the record's Primary Key.
No heavy processing, single user application.

Communication to a process seems easier if the process is started using CALL 
WORKER.  Not only can any of its windows be called with CALL FORM, but the 
process can also be called with CALL WORKER, without knowing which window, if 
any, is open.  

It got me to wondering if, in general, "CALL WORKER" has all the advantages 
over "New process" to manage processes.

Thanks,
Keith - CDI

--some corrections in the sample code below--

> On May 18, 2017, at 11:41 AM, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Keith,
> 
> First off I'm not clear what the intent of wOpen is - are we modifying the
> record or simply displaying it?
> 
> If it's only being displayed you don't need CALL WORKER to change it - any
> process that can load it can change it. The issue becomes notifying the
> display process to refresh itself - which would probably be an On timer
> event (if you're running on 4D server it would have to be) or On outside
> call (or CALL FORM...) if it's standalone.
> 
> If wOpen is allowing the user to edit the record I'd say that's a bad idea
> to have outside processes modify a record the user has open - at least
> without the user having control and knowledge of what's going on. As I
> think about it if this is a case where you're handing off some processor
> intensive operation from the form you want to run by CALL WORKER and then
> get the results back that's plausible. Personally I'd rather have the input
> form receive the data and handle updating the record at the form level than
> allow another process to load, modify and unload the record.
> 
> It still seems like a lot of extra coding for not much benefit - but I may
> not fully get your intention. I do a lot of this sort of thing already
> using Execute on server to move the heavy processing off the client and
> avoid moving lots of data over the network.
> 
> On Thu, May 18, 2017 at 8:22 AM, Keith Culotta via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> Are there good reasons to keep using "New process" in a situation like the
>> following, or can it be replaced by "CALL WORKER"?
>> 
>> //--Base process that shows a list of records from [Table].  Pick a record
>> and
>> $p:=New process("wOpen";0;[Table]PriKey;*)
>> 
>> //--wOpen - displays the record on the screen
>> PROCESS PROPERTIES ( Current Process ; $key ; $p1 ; $p2 )
>> Query([Table];[Table]PriKey=$key)
>> $w:=Open Form Window("ShowRecord")
>> Dialog("ShowRecord")
>> 
>> Now, "Base process" would like to tell the new process to change a value
>> in the record.
>> After "Base process" gets the value of $w, it could use "CALL FORM" to
>> accomplish that.
>> However, if I had used: CALL WORKER ( [Table]PriKey ; wOpen) instead of
>> "New process" to create the process, I could, with minor changes in wOpen,
>> use "CALL WORKER" to get the process to change the record's values.
>> 
>> //--process that shows a list of records from [Table].  Pick a record and
>> CALL WORKER ( [Table]PriKey ; wOpen)
>> 
>> //--wOpen - displays the record on the screen
>> PROCESS PROPERTIES ( Current Process ; $key ; $p1 ; $p2 )// $key Process Name
>> Query([Table];[Table]PriKey=$key)
>> $w:=Open Form Window("ShowRecord")
>> Dialog("ShowRecord")
>> KILL WORKER
>> 
>> Thanks,
>> Keith - CDI
> 
> 
> 
> -- 
> Kirk Brooks
> San Francisco, CA
> ===
> 
> *The only thing necessary for the triumph of evil is for good men to do
> nothing.*
> 
> *- Edmund Burke*

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Exploring CALL WORKER vs New process

2017-05-18 Thread Keith Culotta via 4D_Tech
Tim,

Sure enough, Dialog puts the brakes on it.

Keith - CDI

> On May 18, 2017, at 1:41 PM, Timothy Penner via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> For example, if the Worker is running DIALOG then the method will not 
> complete until after the window is closed. Like in your example:

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Exploring CALL WORKER vs New process

2017-05-18 Thread Keith Culotta via 4D_Tech
In just about all UI processes Dialog(TableOrProjectForm;plain window) is the 
only way a window gets opened.  I suppose this has simulated calling DIALOG(*) 
from a [I forget what kind of] window.  These can call their own DIALOG(*) 
windows too.  Wanting to use CALL WORKER would change that approach.  It looks 
like it will be best to find a window number and use CALL FORM after all.

Keith - CDI

> On May 18, 2017, at 2:26 PM, Timothy Penner  wrote:
> 
>>> Sure enough, Dialog puts the brakes on it.
>> Maybe using the * parameter to DIALOG will allow your design to function?
> 
> Actually, you would also need to remove the call to KILL WORKER because that 
> command will effectively close the open Window.

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Exploring CALL WORKER vs New process

2017-05-18 Thread Keith Culotta via 4D_Tech
OK - I have to take that back.  I recall that calling 
Dialog(TableOrProjectForm;plain window;*) always closed the window immediately 
after it was opened, unless it was called from a "main" window.  I just tried 
it anyway, and it stayed open.  

Will rethink...
Keith - CDI

> On May 18, 2017, at 3:36 PM, Keith Culotta via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> In just about all UI processes Dialog(TableOrProjectForm;plain window) is the 
> only way a window gets opened.  I suppose this has simulated calling 
> DIALOG(*) from a [I forget what kind of] window.  These can call their own 
> DIALOG(*) windows too.  Wanting to use CALL WORKER would change that 
> approach.  It looks like it will be best to find a window number and use CALL 
> FORM after all.

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Exploring CALL WORKER vs New process

2017-05-19 Thread Keith Culotta via 4D_Tech


> On May 18, 2017, at 5:38 PM, David Adams via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:

> * Workers don't die when their work is done, they wait. 

A method called by New Process
  $w:=Open Form Window("ShowRecord")
  Dialog("ShowRecord")
  ExitCode

A method called by CALL WORKER
  $w:=Open Form Window("ShowRecord")
  Dialog("ShowRecord";*)

So this is why when using CALL WORKER, the Dialog(*) windows hang around after 
the method has been exited.
This means moving the process ExitCode from the lines after Dialog into a 
form's "On Unload" event.

> but there are functionally two loops
A forms execution environment could be visualized as:
If (Worker called)
  // do worker method
Else
  // do form method
End if


> The method has
> access to all of the process values (variables, etc.) and the "form
> variables" of the specific form in the specified window.

If several forms were open in a process, would it matter which form was called? 
 A form's local variables are outside the purview of the "Worker called".  No 
event is triggered.  Any variable changed need a Call Process (-1) for their 
display to change.
On the other hand, this is where form object names make the context significant?


Handy use example:
A method that saves a file, processes it, and deletes the file got a 
significant performance boost when the delete part was handed off to a CALL 
WORKER invoked method.

Thanks,
Keith - CDI
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Tags in record on 4d.

2017-05-19 Thread Keith Culotta via 4D_Tech
I have used Text fields and have considered using Objects for that kind of 
storage, but they both give me a hint of that old Subtable feeling.  The data 
is buried in a field within a record.  Objects have some tools to help with 
this, and it's easier to build a complex tag structure.

A related table gives access to all the convenient built in query, reporting, 
and display features of 4D.  

Keith - CDI

> On May 19, 2017, at 9:25 AM, Eric Naujock via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Has anybody come up with a good way add tags records in a table?
> 
> For instance I have a table of contacts, but I would like to be able to tags 
> them with labels and then be able to filter on those labels. Kind of like the 
> usage of tags in osx. 
> 
> In this case I would like to be able to add tags created by users to tag 
> contacts. I have my contacts table, I am thinking I should use objects to 
> handle this. Any suggestions?
> 
> I am running under 4D v15.4 on mac OSX.

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Exploring CALL WORKER vs New process

2017-05-20 Thread Keith Culotta via 4D_Tech

That was a kind of mashup of several ideas, but you covered them in the 
preceding paragraph.  
Thanks for the observations.

Keith - CDI

> On May 19, 2017, at 5:41 PM, David Adams via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> You call a window, not a form, not process. That's precisely so that you
> can specify which window in a process you're trying to send the code to for
> execution. If you aren't using multiple windows in a single process or if
> you aren't using 'form variables', then it makes no difference.
> 
> * The code executes in the context of the _process_ holding the
> window/form. No matter which window/form it is.
> * The code has access to the form variables of the form in the specified
> window, if you want them.
> 
> A form's local variables are outside the purview of the "Worker called".
>> No event is triggered.  Any variable changed need a Call Process (-1) for
>> their display to change.
>> On the other hand, this is where form object names make the context
>> significant?
>> 
> 
> I don't think that I follow what you're saying here.

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: v13 - Warning Compiler misses syntax error

2017-05-24 Thread Keith Culotta via 4D_Tech
In v16 interpreted

C_TEXT($t)
C_POINTER($p1;$p2)

$t:="A"
$p1:=(->$t)
$p2:=(->$p1)

ALERT($p2->->) // Error
ALERT(($p2->)->) // A
ALERT(String(Type($p2->->))) // 2
ALERT(String(Type(($p2->)->))) // 2

Type and Alert have different tolerances?

Keith - CDI


> On May 24, 2017, at 1:50 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I accidentally typed the following line of code:
> $0:=(Type($To_Validate->->)=Is Pointer)
> 
> Notice anything wrong?
> At least the compiler did not...
> 
> Error is :
> ->->
> 
> I haven't checked newer versions
> Chip
> 
> 
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Macro anyone?

2017-05-30 Thread Keith Culotta via 4D_Tech
This gets the text from and to the clipboard


$text:=Get text from pasteboard

ARRAY TEXT($array;0)
$delim:=Char(Carriage return)
$len:=Length($text)
$lenDel:=Length($delim)-1
$pos1:=1
$pos2:=Position($delim;$text;*)

While ($pos2>0)
$SS:=Substring($text;$pos1;$pos2-1)
APPEND TO ARRAY($array;$SS)
$pos1:=$pos2+$pos1+$lenDel
$pos2:=Position($delim;Substring($text;$pos1;$len);*)
End while 
APPEND TO ARRAY($array;$SS)

SORT ARRAY($array)
$text:=""
$size:=Size of array($array)
For ($i;1;$size)
$text:=$text+$array{$i}+$delim
End for 
SET TEXT TO PASTEBOARD($text)

Keith - CDI

> On May 30, 2017, at 10:04 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Anyone have a macro (or anything else)
> which will sort method editor text?
> 
> I have a method which I am using to keep track of other methods I have 
> worked on.
> I would like to sort this list. Currently I am copy/pasting in excel 
> and sorting and copy/pasting back
> 
> Would prefer not to do this.
> 
> Thanks
> Chip
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: .ExternalData folder outside of the database folder?

2017-06-12 Thread Keith Culotta via 4D_Tech
Maybe two things to try...
Can you place the entire data folder on the external drive?
Would using a Symbolic or Hard link work instead of an alias.

Keith - CDI

> On Jun 10, 2017, at 11:07 AM, John Baughman via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> As I read the docs, there is no way to have the .ExternalData folder anyplace 
> other than inside the database folder and still have 4D manage the files. I 
> guess the mode “Automatic Location/Use default folder” says it all.
> 
> My question is, why can’t the path to the default folder be defined by the 
> developer or end user? 
> 
> The reason I chose automatic location using the default folder was because 
> photos are modified using QPix some time after the record containing the 
> photo is initially saved to 4D. I figured that letting 4D handle the external 
> storage would be a whole lot easier. Now that the .ExternalData folder has 
> grown to over 300gb I would like to put the folder on an external disk. I 
> tried using an alias, but that does not work.
> 
> I don’t see why there couldn’t be a way to designate the location of the 
> default folder. Is there a way to do this now that I am missing? Is my 
> thinking flawed in some way? Perhaps this is a good idea for a feature 
> request?
> 
> John
> 
> 
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Cleaning Text & Replace string speed

2017-06-15 Thread Keith Culotta via 4D_Tech
I could not find it in the archives, so I quickly wrote a method to strip two 
unwanted, but unidentified characters from a body of text (6mb).  Each 
acceptable character was added to the output text var.  I stopped it after an 
hour of the compiled code not returning a result.

Since I am always impressed at how fast 4D commands are, I gave "Replace 
string" a try.
The same text file took 37 seconds to clean two offending characters, and 17 
seconds to clean all but uppercase only characters from the same text, and in 
interpreted mode.  It took about 4 seconds in compiled mode for both tests.

Here's the code.

Keith - CDI

  // 
  // Method: StringOmit
  // -   Uses REPLACE STRING* to clear characters
  // INPUT1: Text - to strip
  // INPUT2: Longint - lowest allowed character code
  // INPUT3: Longint - highest allowed character code
  // INPUT{4}: Longint - additional allowed character codes
  //
  // OUTPUT:  Text - with remaining characters
  // 
C_TEXT($inText;$1;$0;$outText)
C_LONGINT($i;$len;$low;$2;$high;$3;$cp;$cc;$start)
C_BOOLEAN($hasAdded;$canAdd)

$inText:=$1
$len:=Length($inText)
$low:=$2
$high:=$3

$cp:=Count parameters
If ($cp>3)
$hasAdded:=True
ARRAY LONGINT($added;0)
For ($i;4;$cp)
APPEND TO ARRAY($added;${$i})
End for 
End if 

$start:=1
$i:=$len+2

If ($hasAdded)  // also test the array of additional characters
While ($start<=$len) & ($i>($len+1))
For ($i;$start;$len)
$cc:=Character code($inText[[$i]])
If ($cc<$low) | ($cc>$high) & (Find in 
array($added;$cc)<1)
$inText:=Replace string($inText;Char($cc);"";*)
$start:=$i
$i:=$len+2
$len:=Length($inText)
End if 
End for 
End while 

Else   // no point in testing an empty array 
While ($start<=$len) & ($i>($len+1))
For ($i;$start;$len)
$cc:=Character code($inText[[$i]])
If ($cc<$low) | ($cc>$high)
$inText:=Replace string($inText;Char($cc);"";*)
$start:=$i
$i:=$len+2
$len:=Length($inText)
End if 
End for 
End while 

End if 

$0:=$inText



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Cleaning Text & Replace string speed

2017-06-16 Thread Keith Culotta via 4D_Tech
Even better.  With Match regex it takes about a second to remove a smaller 
number of characters ($text;32;126;9;13) from this file.   However, when few 
characters are selected to remain in the result  ($text;65;90;9;13), the time 
goes up into minutes; 8 compiled and 11 interpreted.  I guess it's all about 
the payload.

Thanks,
Keith - CDI

> On Jun 15, 2017, at 9:08 PM, Keisuke Miyako via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> as a match regex exercise, you could do...
> 
> $test:=Method1 ("abcdefghijklmnopqrstuvwxyz";\
> Character code("k");Character code("m");\
> Character code("d");Character code("y"))
>  //dklmy
> 
>>  // 
>>  // Method: StringOmit
>>  // -   Uses REPLACE STRING* to clear characters
>>  // INPUT1: Text - to strip
>>  // INPUT2: Longint - lowest allowed character code
>>  // INPUT3: Longint - highest allowed character code
>>  // INPUT{4}: Longint - additional allowed character codes
>>  //
>>  // OUTPUT:  Text - with remaining characters
>>  // 
>> 
>> C_TEXT($1;$in;$0;$out)
>> C_LONGINT($2;$3)
>> C_LONGINT(${4})
>> 
>> C_LONGINT($i;$pos;$len)
>> C_TEXT($min;$max;$motif)
>> 
>> $min:="\\u"+Substring(String($2;"&x");3)
>> $max:="\\u"+Substring(String($3;"&x");3)
>> 
>> $motif:="["+$min+"-"+$max
>> 
>> For ($i;4;Count parameters)
>> $motif:=$motif+"\\u"+Substring(String(${$i};"&x");3)
>> End for
>> 
>> $motif:=$motif+"]+"
>> 
>> $in:=$1
>> 
>> $i:=1
>> 
>> While (Match regex($motif;$in;$i;$pos;$len))
>> $out:=$out+Substring($in;$pos;$len)
>> $i:=$pos+$len
>> End while
>> 
>> $0:=$out
>> 
> 
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Generating Random Numbers

2017-06-27 Thread Keith Culotta via 4D_Tech
The math is one thing, but practically speaking, the bank gives me three tries 
and then a hand comes out of the monitor and gives me the dope slap.

Keith - CDI

> On Jun 27, 2017, at 9:48 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> a 5 character password, which allows 128 characters (basic ascii) 
> COMPLETELY BY BRUTE FORCE falls in just over 9 hours.  That is 128^5 
> (34,359,738,368).

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: How to close a modal window if user clicks outside of it?

2017-06-29 Thread Keith Culotta via 4D_Tech
Try with a Plain Form Window type and activate the On Deactivate event.  Put a 
Cancel in that event to close the window.  It can't tell if the mouse just 
moves outside the window (you can do that with an invisible, grow,grow object), 
but a click anywhere else will close the window.

Keith - CDI

> On Jun 29, 2017, at 1:02 PM, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi folks,
> 
> I open a modal dialog within another form. I want to close this if the user
> moused to or clicks on something outside the form. Since I'm working with a
> modal dialog it just beeps.
> 
> I tried using the On mouse leaving form event. It fires when the mouse
> leaves any object on the form but not if I leave the form itself. This is
> close but not too good.
> 
> Is there some other way to recognize when the user is off the modal and
> take action programmatically?
> 
> Thanks
> 
> -- 
> Kirk Brooks
> San Francisco, CA
> ===
> 
> *The only thing necessary for the triumph of evil is for good men to do
> nothing.*
> 
> *- Edmund Burke*
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

  1   2   >