Re: Client communication

2024-03-05 Thread Keith Culotta via 4D_Tech
Can you use a Record in a Table that all Clients share?
Also, EXECUTE ON CLIENT can have parameters.
**
4D Internet Users Group (4D iNUG)
New Forum: https://discuss.4D.com
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: Image from print form

2022-03-19 Thread Keith Culotta via 4D_Tech
Mac's Automator has a PDF action to render each page of a passed PDF document 
as an image.

in 4D:
C_PICTURE($pic)
READ PICTURE FILE(""; $pic)  // read in PDF, all pages are in $pic, only page 1 
is accessible to 4D
If (OK=1)
CONVERT PICTURE($pic; ".png")  // only page 1 is in $pic
End if 

> On Mar 19, 2022, at 2:22 PM, stardata.info via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> What i can use to convert a PDF file to an image?
> 
> Thanks
> 
> Ferdinando
> 
> 
> 
> Il 19/03/2022 20:00, 4d_tech-requ...@lists.4d.com ha scritto:
>> Message: 3
>> Date: Sat, 19 Mar 2022 07:56:01 +
>> From: Keisuke Miyako
>> To: 4D iNug Technical<4d_tech@lists.4d.com>
>> Subject: Re: [SPAM]  Image from print form
>> Message-ID:<1dc5e892-2e59-45b8-8727-1ef3358f6...@4d.com>
>> Content-Type: text/plain; charset="us-ascii"
>> 
>> you can do that with any command line program that does PDF to image.
>> 
>> there is no need to do it with 4D code.
>> 
>> just use LAUNCH EXTERNAL PROCESS.
>> 
>> I need to convert in image file only one page.
>> I need to assing a path and name to the image file.
> **
> 4D Internet Users Group (4D iNUG)
> New Forum: https://discuss.4D.com
> 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)
New Forum: https://discuss.4D.com
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: [SPAM] Re: Finding duplicates

2022-03-19 Thread Keith Culotta via 4D_Tech
Here is a classic routine for finding duplicates.  It has not been tested with 
null fields.

// 
// Method: DuplicatesToSet
//Search the current selection for duplicate values in a 
field.
//
// INPUT1: Pointer - to field to examine
//
// INPUT2: Text - name of Set to contain duplicates or ""
// The selection will not be changed when a non blank 
string is passed.
// In this case the calling method will handle the created 
Set.
// Pass an empty string to make this method change the 
selection 
// to show any duplicates found.
//
// INPUT3: Boolean - True = Sort the array
// Can be False if the selection is already sorted on $1->
//
// {INPUT4}: Boolean - True = Highlight only the duplicate copies
// useful for deleting the duplicates after the procedure
//
// OUTPUT: Longint - Number of records in the set
// 
If (Count parameters>0)

C_POINTER($1; $field; $table)
C_TEXT($2; $DupSet)
C_LONGINT($i; $size; $type)
C_LONGINT($0)
C_BOOLEAN($addFirst; $sortArray; $hilightAll; $4)

$field:=$1
If ($2#"")
$DupSet:=$2
Else 
$DupSet:="$DupSet"
End if 
$sortArray:=$3

If (Count parameters>3)
$hilightAll:=Not($4)
Else 
$hilightAll:=True
End if 

ARRAY LONGINT($aFound; 0)
ARRAY LONGINT($aRecs; 0)
$table:=Table(Table($field))

$type:=Type($field->)

Case of   // create an array of the correct TYPE, faster than using 
pointers
: ($type=Is alpha field) | ($type=Is string var) | ($type=Is 
text)
ARRAY TEXT($afieldT; 0)
SELECTION TO ARRAY($table->; $aRecs; $field->; $afieldT)
$type:=1

: ($type=Is longint) | ($type=Is integer) | ($type=Is real) | 
($type=Is integer 64 bits)  //| ($type=Is Time)
ARRAY REAL($afieldN; 0)
SELECTION TO ARRAY($table->; $aRecs; $field->; $afieldN)
$type:=2

: ($type=Is date)
ARRAY DATE($afieldD; 0)
SELECTION TO ARRAY($table->; $aRecs; $field->; $afieldD)
$type:=3

: ($type=Is boolean)
ARRAY BOOLEAN($afieldB; 0)
SELECTION TO ARRAY($table->; $aRecs; $field->; $afieldB)
$type:=4

: ($type=Is time)
ARRAY LONGINT($afieldL; 0)
SELECTION TO ARRAY($table->; $aRecs; $field->; $afieldL)
$type:=5

Else 
$type:=-1

End case 

$size:=Size of array($aRecs)

If ($sortArray)
Case of 
: ($type=1)
SORT ARRAY($afieldT; $aRecs)
: ($type=2)
SORT ARRAY($afieldN; $aRecs)
: ($type=3)
SORT ARRAY($afieldD; $aRecs)
: ($type=4)
SORT ARRAY($afieldB; $aRecs)
: ($type=5)
SORT ARRAY($afieldL; $aRecs)
End case 
End if 

$addFirst:=True  // add a record to the duplicate array only once
Case of   // Search for duplicates
: ($type=1)
For ($i; 2; $size)
If ($aFieldT{$i}=$aFieldT{$i-1})
If ($addFirst & $hilightAll)
APPEND TO ARRAY($aFound; 
$aRecs{$i-1})
End if 
APPEND TO ARRAY($aFound; $aRecs{$i})
$addFirst:=False
Else 
$addFirst:=True
End if 
End for 

: ($type=2)
For ($i; 2; $size)
If ($aFieldN{$i}=$aFieldN{$i-1})
If ($addFirst & $hilightAll)
APPEND TO ARRAY($aFound; 
$aRecs{$i-1})
End if 
APPEND TO ARRAY($aFound; $aRecs{$i})
$addFirst:=False
Else 
$addFirst:=True
End if 
 

Re: v13 - Lists

2019-08-28 Thread Keith Culotta via 4D_Tech
Try pressing the enter or return keys before you do the tab switch?

Keith - CDI

> On Aug 28, 2019, at 11:01 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I have a bunch of lists I use as contents for popup menus.
> I initially was not consistent with my naming convention, in some 
> instances using a leading capital and in other not.
> 
> I want to make them all the same (I know it doesn't have to be this 
> way...).
> I select the list I want to rename.
> right click
> select 'Rename'
> adjust the capitalization.
> 
> All looks good.
> I switch to a different 'tab' in the tool dialog, and back.
> The original capitalization has returned !?!?!?!
> 
> any ideas as to what is going on or why?
> 
> Thanks
> Chip
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 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: zooming and panning

2019-08-26 Thread Keith Culotta via 4D_Tech
From the description of your setup on page 1 it sounds like you already know 
this, but...

If pic0 (on page 0) and pic1 (on page1) are both the same size and formatted to 
Truncated (non aero) you can 
OBJECT GET SCROLL POSITION ( pic1 ; vPosition ; hPosition )  // marker pic
OBJECT SET SCROLL POSITION ( pic0 ; vPosition ; hPosition; * ) // waveform pic
in the On Scroll event of pic1

Note the 4th (*) parameter in OBJECT SET SCROLL POSITION. If pic1 is centered, 
pic0 will get set to the same position.

Keith - CDI

> On Aug 26, 2019, at 2:00 PM, Peter Mew via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi
> Heres the thing
> I have an audio waveform (You can think of it as a map)
> I want to be able to choose a location somewhere in the waveform, move the
> waveform so the chosen location is in the centre of the waveform, and zoom
> in X 2 to the location. Then drop a marker at that point
> and then to be able to do it again and again.
> Moving the location point to the centre of the window is easy, zooming the
> waveform X2 is easy, but I cant figure out how to move (Scroll) the
> waveform so that the desired location is also in the centre of the window
> The Window in which the Waveform is displayed, is a fixed size, and  the
> waveform is a finite length
> Im starting with a picturecontaining the waveform on page 0 of a form, with
> the markers on page 1
> Any pointers you could provide would be very welcome
> thanks
> -pm
> 4D v13.6

**
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: v13, v15 & OS X 10.14

2019-08-25 Thread Keith Culotta via 4D_Tech
A lot of v13 works.  I have made small modifications to methods and forms, and 
have not yet destroyed a structure.
In particular, when a user right-clicks a picture field in an entry form, the 
spinning wheel locks the program just after the contextual menu appears.

Keith - CDI

> On Aug 25, 2019, at 12:57 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I just got a new, used iMac.
> it came with 10.14 installed.
> 
> what is the functionality of 4D v13 and v15 with this OS?
> I know that they are not certified - but what is the real world compatibility?
> 
> Thanks
> 
> 
> Hell is other people 
> Jean-Paul Sartre
> **
> 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: Regex expert needed??

2019-08-24 Thread Keith Culotta via 4D_Tech
That's great.  It's fast, and reduces the number of searches.

Keith - CDI


  // 
  // Method: Suffix_Tree - from Wiki examples
  // - 
  // INPUT1: Text - to compare
  // INPUT2: Text - to compare
  // INPUT3: Pointer - array of longest matches
  // OUTPUT: Longint - length 
  //  
C_LONGINT($i;$size;$longest;$0)
C_TEXT($longer;$shorter;$temp)
$str1:=$1
$str2:=$2

If (Length($str1)>Length($str2))
$longer:=$str1
$shorter:=$str2
Else 
$longer:=$str2
$shorter:=$str1
End if 

$m:=Length($longer)  // is the longer string
$n:=Length($shorter)

ARRAY LONGINT($LCSub;$m;$n)
$longest:=0

For ($i;1;$m)
For ($j;1;$n)
If ($i=1) | ($j=1)
$LCSub{$i}{$j}:=0

Else 
If ($longer[[$i-1]]=$shorter[[$j-1]])
$LCSub{$i}{$j}:=$LCSub{$i-1}{$j-1}+1
If ($longest<$LCSub{$i}{$j})
$longest:=$LCSub{$i}{$j}
End if 
Else 
$LCSub{$i}{$j}:=0
End if 
End if 

End for 
End for 

  // search for matches of $longest length
ARRAY TEXT($aMatch;0)
$size:=Length($shorter)-$longest+1
For ($i;1;$size)
$temp:=Substring($shorter;$i;$longest)
If (Position($temp;$longer;*)>1)
If (Find in array($aMatch;$temp)=-1)
APPEND TO ARRAY($aMatch;$temp) 
End if 
End if 
End for 

COPY ARRAY($aMatch;$3->)
$0:=$longest




> On Aug 24, 2019, at 2:41 PM, John DeSoi via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> See 
> 
> https://en.wikipedia.org/wiki/Longest_common_substring_problem
> 
> John DeSoi, Ph.D.
> 
> 
>> On Aug 24, 2019, at 10:48 AM, Keith Culotta via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> This version stands alone, and runs a little more efficiently.  It's not 
>> been tested in every way, but the results are encouraging.  Interesting 
>> problem.  I can't think of a way to do it without comparing every character 
>> combination.  The new "Split string" command would speed part of this up if 
>> Collections could be used.
> 

**
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: Regex expert needed??

2019-08-24 Thread Keith Culotta via 4D_Tech
This version stands alone, and runs a little more efficiently.  It's not been 
tested in every way, but the results are encouraging.  Interesting problem.  I 
can't think of a way to do it without comparing every character combination.  
The new "Split string" command would speed part of this up if Collections could 
be used.

Keith - CDI


$str1:="kaslfkshjflsfhlksadlfbskdjfblgiutgqoiwuflkfhaskhjfgkajshgaefgasjdfgkajshgfakjhgfuyf"
$str2:="askjfhaskfhlhflefhljksfhdlkjdshfljkhflsehflifhlksjdfhljhsaljdiodjejkljfhlajksdhflajsdhfljdhflkajhdsflwuhfl"
ARRAY TEXT($aMatch;0)
$longest:=getCommon2 ($str1;$str2;->$aMatch)
ALERT($longest)  // = fhask



  // 
  // Method: getCommon2
  // - 
  // INPUT1: Text - to compare characters
  // INPUT2: Text - to compare characters
  // INPUT3: Pointer - to text array of all common character strings
  // OUTPUT: Text - a longest match
  // 
C_TEXT($str1;$str2;$str3;$1;$2;$0;$longestFound;$longer;$shorter;$sepChar2;$padStr;$sepChar;$word)
C_LONGINT($i;$j;$longLen;$loop;$m;$pos1;$pos2;$shortLen;$size;$newStart;$start)

$str1:=$1
$str2:=$2
$sepChar:="‡"  //Char(4)  // any character that would not be in the string
$longestFound:=""

If (Length($str1)>Length($str2))
$longer:=$str1
$shorter:=$str2
Else 
$longer:=$str2
$shorter:=$str1
End if 

$shortLen:=Length($shorter)
$padStr:=$sepChar*$shortLen
$longer:=$padStr+$longer
$longLen:=Length($longer)
$loop:=1
ARRAY TEXT($aMatch;0)

Repeat 
Case of 
: ($loop<=$shortLen)  // starting
$pos1:=$shortLen
$pos2:=$shortLen+$loop
: ($loop>=$shortLen) & (($shortLen+$loop)<=$longLen)
$pos1:=$loop
$pos2:=$shortLen+$loop
Else 
$pos1:=$loop
$pos2:=$longLen
End case 

$shorter:=$sepChar+$shorter  // slide str1 over str2
$str3:=$sepChar*($pos2)

For ($i;$pos1;$pos2)  // compare the vertical chars
For ($j;$pos1;$i)
If ($shorter[[$j]]=$longer[[$j]])
$str3[[$j]]:=$shorter[[$j]]  // record a match
End if 
End for 
End for 

  // - break out the matches
$start:=1
ARRAY TEXT($aTemp;0)
$sepChar2:=$sepChar+$sepChar

Repeat 
$str3:=Replace string($str3;$sepChar2;$sepChar;*)  // remove 
all but a single sepChar
Until (Position($sepChar2;$str3;*)=0)  // still need to check for the 
sepChar at the beginning or end?

Repeat 
$newStart:=Position($sepChar;$str3;$start;*)
If ($newStart=0)
$word:=Substring($str3;$start)  // get the last word
Else 
$word:=Substring($str3;$start;$newStart-$start)
End if 
APPEND TO ARRAY($aTemp;$word)
$start:=$newStart+1
Until ($newStart=0)
  // - break out the matches

$size:=Size of array($aTemp)
For ($m;1;$size)
If (Find in array($aMatch;$aTemp{$m})=-1)  // add the match if 
it's not already there
APPEND TO ARRAY($aMatch;$aTemp{$m})
If (Length($aTemp{$m})>Length($longestFound))  // 
remember the longest 
$longestFound:=$aTemp{$m}
End if 
End if 
End for 

$loop:=$loop+1

Until ($pos1>$longLen)
  // | (Length($longestFound)>($longLen-$pos1))
  // could  stop when the greatest found length exceeds the # of chars 
remaining to check
  // if the complete array is not needed

COPY ARRAY($aMatch;$3->)
$0:=$longestFound



> On Aug 23, 2019, at 8:27 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> 
> well...
> if there is a double space in one and not the other then the longest 
> duplicated string would be ' dog'.
> So that answer would be correct.
> 
> Also, over all, I would be interested in character duplication rather then 
> word duplication.
> 
> Thanks
> for all the input!!
> 
> Chip
> 
>> That’s rather what I thought, in which case it won’t work for Chip’
>> s original query.
>> 
>>> On 22 Aug 2019, at 21:12, Chip Scheide via 4D_Tech 
>>> <4d_tech@lists.4d.com> wrote:
>>> 
>>> Given 2 strings, 
>>> I want to find, and return, the longest substring which is the same in 
>>> both, regardless where in either string the longest substring starts.
>>> 
>>> ex: 
>>> 1- This is my dog
>>> 2- My dog does not have fleas
>>> longest common string is 'my dog’
>> 
>> 1 - This is my  dog// note double space after 
>> “my” 
>> 2 - My dog does not have fleas
>> 
>> longest common s

Re: Regex expert needed??

2019-08-23 Thread Keith Culotta via 4D_Tech
This behaves better, in that it works for the whole of both strings.  It could 
still be optimized.  The array that gets returned has all (afaict) the matches.


$str1:="This is my dog"
$str2:="My dog does not have fleas"
  //$str2:="My dog does not have fleas" 

  //$str1:="The quick brown fox jumps over the lazy dog"
  //$str2:="The quick black fox leaps over the laziest dog"

  //$str1:="The quick brownbrown fox jumps over the lazy dog"
  //$str2:="fox leaps over the laziest dog The quick brownbrown"

ARRAY TEXT($aMatch;0)
getCommon2 ($str1;$str2;->$aMatch)

SORT ARRAY($aMatch;<)



  // 
  // Method: getCommon2
  // - 
  // INPUT1: Text
  // INPUT2: Text
  // INPUT3: Pointer - to text array
  // OUTPUT: 
  // 


$str1:=$1
$str2:=$2
$unique:=True
$sepChar:=Char(9)

If (Length($str1)>Length($str2))
$longer:=$str1
$shorter:=$str2
Else 
$longer:=$str2
$shorter:=$str1
End if 

$shortLen:=Length($shorter)
$padStr:=$sepChar*$shortLen
$shorter:=$shorter
$longer:=$padStr+$longer

$longLen:=Length($longer)
$maxLen:=$shortLen*2+$longLen

$loop:=1

ARRAY TEXT($aMatch;0)

Repeat 
Case of 
: ($loop<=$shortLen)  // starting
$pos1:=$shortLen
$pos2:=$shortLen+$loop
: ($loop>=$shortLen) & (($shortLen+$loop)<=$longLen)
$pos1:=$loop
$pos2:=$shortLen+$loop
Else 
$pos1:=$loop
$pos2:=$longLen
End case 

$shorter:=$sepChar+$shorter  // push str1 onto str2
$str3:=$sepChar*($pos2)  // longer than needed?

For ($i;$pos1;$pos2)
For ($j;$pos1;$i)
If ($shorter[[$j]]=$longer[[$j]])
$str3[[$j]]:=$shorter[[$j]]
End if 
End for 
ARRAY TEXT($aTemp;0)
Parse_TextToArray ($str3;->$aTemp;$sepChar;$unique)  // as if 
GET TEXT KEYWORDS let you pick the separator
End for 

$size:=Size of array($aTemp)
For ($m;1;$size)
If (Find in array($aMatch;$aTemp{$m})=-1)
APPEND TO ARRAY($aMatch;$aTemp{$m})
End if 
End for 

$loop:=$loop+1
Until ($pos1>$longLen)

COPY ARRAY($aMatch;$3->)

Keith - CDI

> On Aug 22, 2019, at 3:12 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Given 2 strings, 
> I want to find, and return, the longest substring which is the same in 
> both, regardless where in either string the longest substring starts.
> 
> ex: 
> 1- This is my dog
> 2- My dog does not have fleas
> longest common string is 'my dog'
> 
> how to go about this, efficiently?
> I am assuming that there is regex black magic that would do this.
>  

**
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: Regex expert needed??

2019-08-23 Thread Keith Culotta via 4D_Tech
I realize you said "efficiently", but if you ever miss that old Bubble Sort 
feeling...

$str1:="This is my dog"
$str2:="My dog does not have fleas"

$str1:="The quick brown fox jumps over the lazy dog"
$str2:="The quick black fox leaps over the laziest dog"

ARRAY TEXT($aMatch;0)
getCommon ($str1;$str2;->$aMatch)

SORT ARRAY($aMatch;<)


  // 
  // Method: getCommon - needs some optimization
  // - 
  // INPUT1: Text
  // INPUT2: Text
  // INPUT3: Pointer - to text array
  // OUTPUT: 
  // 
$str1:=$1
$str2:=$2

If (Length($str1)>Length($str2))
$longer:=$str1
$shorter:=$str2
Else 
$longer:=$str2
$shorter:=$str1
End if 

$shortLen:=Length($shorter)
$longLen:=Length($longer)
$maxLen:=$shortLen*2+$longLen
$loop:=1
$buildText:=""

Repeat 
ARRAY TEXT($aMatch;0)
For ($i;1;$loop)
$str1:=Substring($shorter;$shortLen-$i)
$str2:=Substring($longer;1;$loop+1)

For ($j;1;Length($str1))
If ($str1[[$j]]=$str2[[$j]])
$buildText:=$buildText+$str1[[$j]]
Else 
APPEND TO ARRAY($aMatch;$buildText)
$buildText:=" "
End if 
End for 

End for 
$loop:=$loop+1
Until ($loop>$maxLen)
 
COPY ARRAY($aMatch;$3->)


Keith - CDI

> On Aug 22, 2019, at 3:12 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Given 2 strings, 
> I want to find, and return, the longest substring which is the same in 
> both, regardless where in either string the longest substring starts.
> 
> ex: 
> 1- This is my dog
> 2- My dog does not have fleas
> longest common string is 'my dog'
> 
> how to go about this, efficiently?
> I am assuming that there is regex black magic that would do this.
>  

**
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: FORMAT NUMBER

2019-08-05 Thread Keith Culotta via 4D_Tech
This ##0.###; ;  produces good results for the example of 0.5
There are some things to watch for in the display detail event
4D v17

0 as blank
1 as 1
.5 as 0.5
.007 as 0.007
.0007 as 0  <- not blank
10.12345 as 10.123
10.1237 as 10.123 <- rounding

Keith - CDI

> On Aug 5, 2019, at 9:58 AM, stardata.info via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi All,
> 
> I need to format one column in a list box.
> The column contains numeric values.
> The values can have tre decimal digits.
> I want a blank if number is zero.
> I need to display 0,5 value for examples and i use ##0,00;; as a format but 
> not work.
> 
> Does someone have a suggestion?
> 
> Thanks
> 
> Ferdinando

**
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: POS systems

2019-08-03 Thread Keith Culotta via 4D_Tech
I have no direct experience using PIMS, but it gets very high marks from 
everyone who uses it.  http://www.executron.com

Keith - CDI

> On Aug 3, 2019, at 7:03 AM, Dave Tenen via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> To all of the 4D universe,
> 
> Does anyone have any experience with a 4D based POS systems?
> 
> Thanks in advance,
> 
> Dave Tenen
> 
> 
> Personal Chef 
> 

**
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: Splitter behaviour

2019-07-12 Thread Keith Culotta via 4D_Tech
This may be related.  When an object lies on the right (or maybe bottom too) of 
a window boundary, trying to change the size of the window makes it expand like 
you described.  I get bit by this when a user double clicks a list form line to 
open an edit form in the same window.  If the user makes the window smaller and 
closes the edit form, one of the list form's objects may lie on the window 
boundary and the out of control expansion can occur.

Keith - CDI

> On Jul 12, 2019, at 9:34 AM, Pat Bensky via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Using v17 r5, Mac
> I have a form with a splitter on it. To the left of the splitter is a
> hierarchical list and two buttons. To the right of the splitter are a
> varying number of objects depending on what's being displayed.
> The properties of the splitter are
> Horizontal sizing: move
> Vertical sizing: grow
> Pusher: true
> 
> So, I want to make the hierarchical list wider as some of its content is
> hidden. I move the splitter to the right a bit. That's fine.
> Now I expand one of the items in the hierarchical list. The expanded list
> it displayed, but the view of the list shifts to the right so that the left
> side of it disappears off the edge of the form. Nothing you do can make it
> return to normal - the only solution is to close the window and open a new
> one.
> 
> Additionally, if I try to resize the window by dragging the bottom right
> corner, instead of making it smaller it makes it bigger! I'm dragging left
> but the window is getting wider! Sometimes it goes really bananas and
> instantly makes the window HUGE.
> 
> This is the sort of thing that drives users crazy!
> 
> Any ideas?
> 
> Pat
> 

**
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: Subform — how to get the CONTAINER OBJECT NAME in the subform form method? (17r5)

2019-07-08 Thread Keith Culotta via 4D_Tech
After using OBJECT Get pointer(Object current)->:=New 
object("subformName";OBJECT Get name(Object current)), I got Form ={} or 
Form=null, depending on where the code was put (subform's form method or 
container's method).


If the subform container's code is:
---
Case of 
: (Form event=On Load)
$name:=OBJECT Get name(Object current)
EXECUTE METHOD IN SUBFORM($name;"setFormName";*;$name)
End case 
---

and the setFormName method is:
---
C_TEXT($1)
OB SET(Form;"subformName";$1)
---

Objects in the widget can see the Parent form's name for their container in 
Form.subformName.
But it only works if the container's Variable Type is set to "None", and fails 
(Form=null) when the Type is set to "Object".

1) I was not expecting only "None" to work.
2) Is there a way for a widget's objects to know the container's name without 
help from the Host?  (Anything available from the inside?)

Thanks,
Keith - CDI

> On Jul 8, 2019, at 1:29 PM, Add Komoncharoensiri via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Hi Chris,
> 
> Since your Subform Widget will be set to Object type, you can try this 
> approach.
> 
> Create the object method for you subform widget with the following code:
> 
> If (Form event=On Load)
>OBJECT Get pointer(Object current)->:=New object("subformName";OBJECT Get 
> name(Object current))
> End if
> 
> Basically you are create a new property to your Form-data of the Subform 
> Widget named "subformName". Once the form is loaded, you can find out the 
> name of your subform container from the context of your subform execution 
> simply by calling:
> 
>Form.subformName
> 
> HTH,
> Add
> 
> 
> 
> 
> On 7/8/19, 10:46 AM, "4D_Tech on behalf of Chris Belanger via 4D_Tech" 
> <4d_tech-boun...@lists.4d.com on behalf of 4d_tech@lists.4D.com> wrote:
> 
>I am trying to create my own widgets. Widgets are subforms.
> 
>In the parent form, I want the  INSTANCE bound variable to be an object.
>Inside the FORM METHOD of the widget (i.e. subform) I need to be able to 
> find out the OBJECT NAME of the Parent INSTANCE of this widget.
>But I cannot find any command that will actually retrieve this information 
> from within the widget’s form method when the INSTANCE is of type Object.
> 
>In the subform’s method:
>OBJECT Get pointer(Object with focus) = nil
>OBJECT Get pointer(Object current) = nil
>OBJECT Get name(subform) = “”
>OBJECT Get pointer(Object subform container) = nil
> 
>
> 
>*** So how does the subform’s form method find out the name of its 
> INSTANCE in the parent form? ***
> 
>This is ridiculous if it cannot just because the bound variable is an 
> object…
> 
>Please, someone, put me out of my misery by sharing the secret. I cannot 
> see why the widget’s method cannot find out ‘who it belongs to’.
> 
>— 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: Deleting a record from a listbox

2019-07-03 Thread Keith Culotta via 4D_Tech
Here is a version with all the parts in the right place, although it seems like 
Carl's example from the manual, searching a boolean array, would be faster.

LONGINT ARRAY FROM SELECTION($tablePtr->;$aBefore)
USE SET($highlightSet)
LONGINT ARRAY FROM SELECTION($tablePtr->;$aAfter)

DELETE SELECTION($tablePtr->)

$size:=Size of array($aAfter)
For ($i;$size;1;-1)
$pos:=Find in array($aBefore;$aAfter{$i})
If ($pos#-1)
DELETE FROM ARRAY($aBefore;$pos)
End if 
End for 

CREATE SELECTION FROM ARRAY($tablePtr->;$aBefore)

Keith - CDI

> On Jul 3, 2019, at 2:05 PM, Sannyasin Siddhanathaswami via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Aloha,
> 
> I’m trying to update my "delete selection of records from a listbox" code. 
> I’m trying to keep the sort order so that when someone clicks  to delete, the 
> only thing they see is the lines they select, get deleted.
> 
> Here’s the basic code. Of course, deleting a record in this scenario, leaves 
> an empty record in the listbox.
> 
> COPY NAMED SELECTION($tablePtr->;"TempCurrentSet")
> USE SET($highlightSet)
> DELETE SELECTION($tablePtr->)
> USE NAMED SELECTION("TempCurrentSet")
> CLEAR NAMED SELECTION("TempCurrentSet")
> 
> I haven’t been able to figure out how to keep the sort, and get rid of the 
> deleted records (now showing as blank).
> 
> Any ideas?
> 
> 
> 
> 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
**

Re: Deleting a record from a listbox

2019-07-03 Thread Keith Culotta via 4D_Tech
Sorry, I meant delete from the Before array.  This is untested, but should show 
the idea.

LONGINT ARRAY FROM SELECTION($tablePtr->;$aBefore) 
USE SET($highlightSet)
LONGINT ARRAY FROM SELECTION($tablePtr->;$aAfter)
DELETE SELECTION($tablePtr->)

$size:=Size of array($aBefore)
For ($i;$size;1;-1)
$pos:=Find in array($aBefore{$i};$aAfter)
If ($pos=-1)
DELETE FROM ARRAY($aBefore;$pos)
End if 

End for 

CREATE SELECTION FROM ARRAY($tablePtr->;$aBefore

Keith - CDI

> On Jul 3, 2019, at 3:03 PM, Keith Culotta via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I recall there being a bit more work in between these two lines, but LONGINT 
> ARRAY FROM SELECTION will create ordered arrays representing the records.
> Then delete the missing records from the after array, and used CREATE 
> SELECTION FROM ARRAY to get the new selection.
> 
> Keith - CDI
> 
>> On Jul 3, 2019, at 2:05 PM, Sannyasin Siddhanathaswami via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> Aloha,
>> 
>> I’m trying to update my "delete selection of records from a listbox" code. 
>> I’m trying to keep the sort order so that when someone clicks  to delete, 
>> the only thing they see is the lines they select, get deleted.
>> 
>> Here’s the basic code. Of course, deleting a record in this scenario, leaves 
>> an empty record in the listbox.
>> 
>> COPY NAMED SELECTION($tablePtr->;"TempCurrentSet")
>> USE SET($highlightSet)
>> DELETE SELECTION($tablePtr->)
>> USE NAMED SELECTION("TempCurrentSet")
>> CLEAR NAMED SELECTION("TempCurrentSet")
>> 
>> I haven’t been able to figure out how to keep the sort, and get rid of the 
>> deleted records (now showing as blank).
>> 
>> Any ideas?
>> 
>> 

**
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: Deleting a record from a listbox

2019-07-03 Thread Keith Culotta via 4D_Tech
I recall there being a bit more work in between these two lines, but LONGINT 
ARRAY FROM SELECTION will create ordered arrays representing the records.
Then delete the missing records from the after array, and used CREATE SELECTION 
FROM ARRAY to get the new selection.

Keith - CDI

> On Jul 3, 2019, at 2:05 PM, Sannyasin Siddhanathaswami via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Aloha,
> 
> I’m trying to update my "delete selection of records from a listbox" code. 
> I’m trying to keep the sort order so that when someone clicks  to delete, the 
> only thing they see is the lines they select, get deleted.
> 
> Here’s the basic code. Of course, deleting a record in this scenario, leaves 
> an empty record in the listbox.
> 
> COPY NAMED SELECTION($tablePtr->;"TempCurrentSet")
> USE SET($highlightSet)
> DELETE SELECTION($tablePtr->)
> USE NAMED SELECTION("TempCurrentSet")
> CLEAR NAMED SELECTION("TempCurrentSet")
> 
> I haven’t been able to figure out how to keep the sort, and get rid of the 
> deleted records (now showing as blank).
> 
> Any ideas?
> 
> 
> 
> 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
**

Re: Dialog (;*) question

2019-06-25 Thread Keith Culotta via 4D_Tech
"If the current process terminates, the forms created in this way are 
automatically closed".

I have always had a DIALOG() window to keep the process from terminating, and 
called the DIALOG(*) windows from within it.  However, you may be able to start 
a process with CALL WORKER, which does not need a DIALOG to keep it going, and 
create DIALOG(*) windows from there.

Keith - CDI

> On Jun 25, 2019, at 8:45 AM, Peter Bozek via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I maybe already asked this question, but anyway I am still a bit confused:
> 
> I wanted to use DIALOG with * as an additional parameter, but have problem
> to make it work. I have app that display several info windows - like
> palettes, progress messages, communication statuses etc.Currently, I often
> need 2 processes for each task: one does the work as background task,
> another display it status / progress.  So instead of running a separate
> process for each window, why not to use one process that will display
> whatever windows application wants to display? Or display status from
> inside background process that do communication or lengthy task.
> 
> My original idea was to call
> 
> OPEN FORM WINDOW
> DIALOG(;*)
> PAUSE PROCESS
> 
> but that does not work, as the process execution is "standing" at PAUSE
> PROCESS and no code is executed (and CALL FORM is either not executed or
> window is not redrawn.)
> 
> When I remove PAUSE PROCESS, process ends and DIALOG window is closed.
> 
> According to documentation, it would work of I do
> OPEN FORM WINDOW
> DIALOG(;*)
> DIALOG()
> 
> but that is quite ugly, and would cause some problems, as I want the
> process that calls DIALOG(;*) periodically evaluate which windows are open
> and close itself if none.
> 
> Another possibility is just to open window and call DIALOG(), then call
> DIALOG(;*) from inside the form method of the first DIALOG() form. That
> would (probably) work, form can use On timer event to check what is open,
> open additional dialogs etc. but I do not like the idea either.
> 
> Is there a way how to use DIALOG(;*)  from a process that does not have any
> other window open?
> 
> Regards,
> 
> -- 
> 
> 
> Peter Bozek
> **
> 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: Rotate Picture

2019-06-23 Thread Keith Culotta via 4D_Tech
Not that it is good form to rely on this, but does a SVG document referenced in 
a local variable get cleared when the method in which it was created terminates?

Thanks,
Keith - CDI

> On Jun 22, 2019, at 9:01 PM, Keisuke Miyako via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> I think the default export option is "copy"
> 
> if you don't SVG_CLEAR (see Cannon's code) you'd be leaking memory.
> 

**
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: Window type -724 (more info)

2019-06-19 Thread Keith Culotta via 4D_Tech
All good advice, but still interesting to explore.

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: Window type -724 (more info)

2019-06-19 Thread Keith Culotta via 4D_Tech
Chip,

How did you find this window type?  I accidentally created a window in 4D v15 
that has a thin vertical window title with small type on the left side: 
-1*(Palette window+Has zoom box).  However, in v17 the title looks the same but 
is on top.
Is there a list that is not in the Docs?

Thanks,

Keith - CDI

> On Jun 19, 2019, at 1:18 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Description of the window that is opened with -724
> - It has ONLY a close button
> - it is indeed a floating window
> - it is resizable
> - it has/accepts a window title
> - on switching away from 4D the window disappears, only to show up at 
> the same location when returning to 4D
> - the window title area appears narrower the a standard type 8 window
> Thanks again
> Chip
> 
> On Wed, 19 Jun 2019 14:13:56 -0400, Chip Scheide via 4D_Tech wrote:
>> How does this value come about?
>> I know the '-' makes it a floating window
>> but how is the value 724 generated?
>> 
>> Thanks
>> Chip
>> ---
>> Gas is for washing parts
>> Alcohol is for drinkin'
>> Nitromethane is for racing 
>> **
>> 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
>> **
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 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: Log integration issue in mirror database

2019-05-19 Thread Keith Culotta via 4D_Tech
I saw error "Cannot find any record with that primary key" when a field marked 
"unique" had lost its index.  After indexing the field the problem went away.

Keith - CDI

> On May 19, 2019, at 10:47 AM, Charles Miller via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Is there any way you are integrating out of order
> Regards
> Chuck
> 
> On Sun, May 19, 2019 at 11:28 AM Two Way Communications bvba POP via
> 4D_Tech <4d_tech@lists.4d.com> wrote:
> 
>> Hi Tom,
>> 
>> Actually, I did. I did verify the records and indexes in the MSC of the
>> mirror database.
>> They checked out fine.
>> 
>> Regards,
>> 
>> Rudy Mortier
>> Two Way Communications bvba
>> 
>> 
>> 
>>> On 19 May 2019, at 17:22, Tom Benedict  wrote:
>>> 
>>> 
 On May 19, 2019, at 07:33, Two Way Communications via 4D_Tech <
>> 4d_tech@lists.4d.com> wrote:
 
 Windows server 2008 R2, 4D server v15.4
 
 A customer has this mirror setup, where code in the mirror database
>> integrates log files coming from the master database.
 
 There are no data operations in the mirror database. It is, however,
>> being accesses frequently through SQL (read only).
 
 This setup has been running for months without a problem.
 
 Now, in 1 week time, 3 similar errors occured:
 
 Error -1: 1282 (dbmg): Cannot find any record with that primary key in
>> table xxx
 Error -1: 1277 (dbmg): The database journal integration failed at entry
>> #306 (operation id 113410570).
 Error -1: 1186 (dbmg): Log file cannot be integrated into database 
 
 The error mentions a different table each of the 3 times it happened.
 
 To fix this, I delete the mirror database, make a new backup on the
>> master, restore the backup on the mirror, and integrate the log files that
>> have been created in the mean time.
>>> 
 What can be the cause of this? Indexes? Issues with the data file?
 
>>> 
>>> I agree that the indexes may be suspect. Have you rebuilt the index
>> file? (just delete the .indx file and it will auto-rebuild).
>>> 
>>> Also, have you run MSC on the master data file? That could be
>> informative.
>>> 
>>> HTH,
>>> 
>>> Tom Benedict
>> 
>> **
>> 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
>> **
> 
> -- 
> -
> Chuck Miller Voice: (617) 739-0306 Fax: (617) 232-1064
> Informed Solutions, Inc.
> Brookline, MA 02446 USA Registered 4D Developer
>   Providers of 4D, Sybase & SQL Server connectivity
>  http://www.informed-solutions.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 64Bit Label Format Numbers

2019-05-17 Thread Keith Culotta via 4D_Tech
Not to get too off point, but if a field is dragged into the Label form and 
changed to a 4D command, the command gets executed...at least the ones I tried  
I got "ALERT"ed once for each record in the selection.  After that the label 
printed with: ALERT("Test") on each label.  BEEP worked the same way.

It will also print the value for [Table]Object.FirstName when a field has been 
so edited.  However, like the String command, only one label in the selection 
will print when that appears on the form.

Keith - CDI

> On May 16, 2019, at 5:44 PM, Keith Culotta via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> The good news is that you can enter this into the field on the label: 
> String([Inventory]Sell1;"$###,##0.00").
> The bad news is that it seems only one label from the selection will print 
> when that is on the form :(
> 
> Keith - CDI
> 
>> On May 16, 2019, at 5:25 PM, Clive Wilson via 4D_Tech <4d_tech@lists.4d.com> 
>> wrote:
>> 
>> Switching to v17 64Bit with the new Label editor.
>> 
>> We print out price tickets in real numbers. We used to be able to set the 
>> number format in the label eg.  “$#,##0.00” .
>> Has this feature bean removed in the new “improved” label editor ?
>> 
>> 
>> Clive Wilson
>> (386) 235-6442
>> cliv...@gmail.com
>> 
>> 
>> 
>> **
>> 4D Internet Users Group (4D iNUG)
>> Archive:  http://lists.4d.com/archives.html
>> Options: https://lists.4d.com/mailman/options/4d_tech
>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
>> **
> 
> **
> 4D Internet Users Group (4D iNUG)
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

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

Re: v17 64Bit Label Format Numbers

2019-05-16 Thread Keith Culotta via 4D_Tech
The good news is that you can enter this into the field on the label: 
String([Inventory]Sell1;"$###,##0.00").
The bad news is that it seems only one label from the selection will print when 
that is on the form :(

Keith - CDI

> On May 16, 2019, at 5:25 PM, Clive Wilson via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Switching to v17 64Bit with the new Label editor.
> 
> We print out price tickets in real numbers. We used to be able to set the 
> number format in the label eg.  “$#,##0.00” .
> Has this feature bean removed in the new “improved” label editor ?
> 
> 
> Clive Wilson
> (386) 235-6442
> cliv...@gmail.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: Using the HELP Menu for my own purposes.

2019-04-29 Thread Keith Culotta via 4D_Tech
The exception to the menu being empty for a standard build (with no additional 
components or plugins) is the SVG Component.  It has a help file of its own 
inside 4D that needs to be removed at some point.

Show 4D Contents and navigate to 4D/Contents/Components/4D SVG.4dbase.
Show Contents of 4D SVG.4dbase and you will see the html help file.

Keith - CDI

> On Apr 29, 2019, at 2:44 PM, Alberto Bachler via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
>> the Help menu is empty if you build the application.
> 
> Are you sure Miyako? Since what version?
> 
> We noticed that the Hep menu on builded applications was showing help items 
> belonging to plugins (and components).
> My solution was, before the build start, execute a method that look for any 
> .htm@ file in the Resources folder of any plugin and delete them.
> 
> 
> Alberto
> 
> 
> 
>> El 28-04-2019, a las 19:08, Keisuke Miyako via 4D_Tech 
>> <4d_tech@lists.4d.com> escribió:
>> 
>> the Help menu is empty if you build the application.
>> 
>> if you don't build the application, the end user is using "4D", not your 
>> custom application.
>> 
>>> 2019/04/29 7:51、Herr Alexander Heintz via 4D_Tech 
>>> <4d_tech@lists.4d.com>のメール:
>>> 
>>> Is there any way out there (can be a Plugin) to do this?
>>> In the current version the HELP menu is utterly useless to my users.
>>> 
>>> BTW: V17 Rx
>> 
>> 
>> 
>> 
>> **
>> 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: Fast way to highlight a listbox entity selection

2019-04-17 Thread Keith Culotta via 4D_Tech
Hi JPR,

Fuzziness is a good description, but things stand in sharper relief today.  I 
was more focused on the syntax than the mechanics and for no particular reason 
started out with collections.  Converting the app to an entity selection 
approach is turning out to be much easier than expected, and much easier than 
converting from an array based approach to a record selection approach would 
have been.

The collection listbox that was crashing was also in a subform.  I did not 
think that was important, but it may have contributed to the failure when 
highlighting records.  The subform was unnecessary, as was using collections 
for this purpose, and abandoning those two approaches has resolved the crashing 
and some performance issues.

The 40k example was a stress testing step.  Most lists should be very much 
smaller, and cueing the user with a visual highlight will be more practical.  
Thanks to the way 4D implemented the Highlight Set in the past, highlighting 
has been a very useful tool that seemed to have no cost.

Thanks,

Keith - CDI

> On Apr 16, 2019, at 11:58 PM, JPR via 4D_Tech <4d_tech@lists.4d.com> wrote:
> 
> [JPR]
> 
> Hi Keith,
> 
> a) It seems that there is some fuzziness in the way Entity Selections and 
> Collections are understood. Let's try to make it more precise:
> 
> - An Entity selection doesn't 'contain' the Entities, it's a List of Entity 
> References (in this case, a reference is a 4D internal référence on the 
> Record which is referenced by the Entity)
> 
> - A Collection has to fit in memory, for each element is a memory object 
> contained (if scalar) or referenced (if not scalar) by the corresponding 
> Collection Element.
> 
> During the WT2019, I've demonstrated (1st day), and explained (2nd day) that 
> you can mix these notions into Collections of entity references (for 
> instance).
> 
> b) The best way to Highlight elements in a ListBox is LISTBOX SELECT 
> ROW(*;"listBox";0;lk add to selection)! If it crashes 4D when the listbox 
> contains a large number of lines, it's a bug.
> 
> c) If the listbox contains a large number of lines, I wonder why it would be 
> necessary to highlight all, for highlighting is just for UI...(But this is 
> just a remark ;-)
> 
> Anyway, from the feedback I got from the East part of the WT in US, it seems 
> that you may find an interest to come to one of the next events, and get some 
> more information about how it works, and why it works like this, and how to 
> choose the best technique without playing Blind Man's Bluff with ORDA. We are 
> here (the Team and myself) to share all the experience we acquired by 
> exploring and opening up the different paths. 
> 
> Anyway, the first day is for free, you will see many technical demos, and a 
> glance on the future, on the evolution of 4D and what's coming next, you will 
> get a lot of demos and source code, and also lunch and coffee!
> 
> And if you find it interesting enough,if you think that you still have 
> something useful to learn, if you feel that you are not yet at the top of 
> your capabilities, you can then register for the second day, where we dive 
> deeply into the code and techniques. We will try to answer your questions, we 
> will do our best to illuminate the road of men who have become lost in their 
> code, and (like it did for most of the previous attendees), it will save you 
> a precious and valuable time when you'll be back home.
> 
> I hope to meet you in Austin, Seattle, or San José!
> 
> My very best,
> 
> JPR
> 
>> On 16 Apr 2019, at 17:49, 4d_tech-requ...@lists.4d.com wrote:
>> 
>> I'm looking for a fast way to highlight a selection of rows in an entity 
>> selection listbox.  The way I am aware of works OK unless the listbox gets a 
>> large number of rows.
>> 
>> Adding records to the Selected Items name in the Property list does not 
>> highlight the listbox contents.  The equivalent of adding records to the 
>> "UserSet" is not available with entity selection listboxes.
>> 
>> Highlighting all with LISTBOX SELECT ROW(*;"listBox";0;lk add to selection) 
>> crashes 4D if the listbox contains enough records.
>> LISTBOX SELECT ROW(*;"listBox";$position;lk add to selection) crashes if put 
>> in a fast FOR loop.  If the loop is executed more slowly there is success.  
>> The slowness comes from looking for entitySelected[i] within the entity 
>> selection and highlighting its position in the listbox.
>> 
>> Is there a better way to get there?
> 

**
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: Fast way to highlight a listbox entity selection

2019-04-16 Thread Keith Culotta via 4D_Tech
Kirk,

Interesting stuff, especially how entitySelection.toCollection duplicates data. 
 I'm currently displaying collections in the listbox.  It's looking like it can 
all be done with entity selections, and be more efficient.

Thanks,

Keith - CDI

> On Apr 16, 2019, at 12:53 PM, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Keith,
> You know you can go about this from another point of view. I actually
> posted about this a bit ago. This won't accomplish exactly what you are
> asking for but it may be something you can use.
> 
> First, remember that even when you have a very large collection or entity
> selection, as you seem to, you can make references to it WITHOUT
> duplicating it. This saves memory, obviously, but also means you can work
> with the list without having to worry about syncing it. It's even better
> when you are working with an entity collection. With 'lazy loading' the
> collection only contains references to the entities not a full copy of the
> data.
> 
> Next, if it's the case the highlighted elements are being generated by some
> sort of filter or search perhaps you can accomplish your goal by only
> showing the records that match whatever criteria you have. I would think
> this is especially true with a list of 40K items. Personally I would really
> not want to have to scroll down to the second item highlighted when it's
> #37306.
> 
> So, you have your 40k entity selection. The trick is not to put this in the
> listbox. Instead make a reference to it and display that. Remember neither
> of these entity selections consists of the data and the second one, the one
> in the listbox, is only a reference to the first. I learned from JPR that
> this is very memory efficient.
> 
> Let's say you put the entity selection in a process var (I would most
> likely use Form for this) but to simplify the example let's call it
> 'entitySelection'. Next make a collection on Form called
> "displayCollection" (or whatever) as
> 
> 
> Form.displayCollection:=entitySelection
> 
> Use Form.displayCollection in the listbox. By default the listbox shows all
> the elements of entitySelection.
> 
> To show a selection of this list you could do:
> 
> Form.displayCollection:=entitySelection.query("dateHired < :1";(Current
> date-90))  //borrowing a query example from the docs.
> Form.displayCollection:=Form.displayCollection  //  forces the listbox to
> update itself
> 
> 
> What are we doing? The query on the entity selection returns a collection.
> The contents of the collection are references to the respective elements in
> entitySelection. We're putting the query result into Form.displayCollection
> and since we have defined our listbox to use displayCollection the listbox
> now contains the query result.
> 
> This is very fast. Like update while the user is typing fast. And since we
> are working with references changes you make to the something in the
> listbox populates back to the entity selection, entitySelection. Plus it's
> memory efficient.
> 
> Another thing I learned at the WT - the entitySelection.toCollection
> command can be helpful BUT it does move the actual entity data to the
> collection. For something like a 40k element entity selection this might
> matter. So be sure to stick with your entity selection when it's large. And
> in this case the data would be in entitySelection but not in the references
> to it.
> 
> 
> On Tue, Apr 16, 2019 at 9:11 AM Keith Culotta via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> Douglas,
>> 
>> That seems promising.  Since the listbox is a collection/entity selection,
>> each row's color would be set by the rows presence in the "Selected items"
>> collection.  I imagine the performance would be OK as long as the search
>> only took place as the row becomes visible to the User.
>> 
>> Kirk's proposal alludes to a solution that 4D seems inches away from,
>> where a row's membership in the selected items collection automatically
>> grants it a highlight, similar to the boolean array of the array based
>> listbox, and the HighlightSet of the selection based listbox.
>> 
>> Thanks,
>> Keith - CDI
>> 
>>> On Apr 16, 2019, at 10:44 AM, Douglas von Roeder via 4D_Tech <
>> 4d_tech@lists.4d.com> wrote:
>>> 
>>> Keith:
>>> 
>>> How about this - rather than change the highlight, what about just
>> changing
>>> the color of the rows to mimic that they’re selected? You can still
>>> maintain array of record numbers/ID’s that represent th

Re: Fast way to highlight a listbox entity selection

2019-04-16 Thread Keith Culotta via 4D_Tech
Douglas,

That seems promising.  Since the listbox is a collection/entity selection, each 
row's color would be set by the rows presence in the "Selected items" 
collection.  I imagine the performance would be OK as long as the search only 
took place as the row becomes visible to the User.

Kirk's proposal alludes to a solution that 4D seems inches away from, where a 
row's membership in the selected items collection automatically grants it a 
highlight, similar to the boolean array of the array based listbox, and the 
HighlightSet of the selection based listbox.  

Thanks,
Keith - CDI

> On Apr 16, 2019, at 10:44 AM, Douglas von Roeder via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Keith:
> 
> How about this - rather than change the highlight, what about just changing
> the color of the rows to mimic that they’re selected? You can still
> maintain array of record numbers/ID’s that represent the selection but just
> update the UI so that it looks like the rows are selected.
> 
> My thinking is that by using the list box code to select the rows, that’s
> causing 4D to reload the records. The thought "Why would you want to do
> that (if you don’t have to)?”, comes to mind. :-)
> 
> --
> Douglas von Roeder
> 949-336-2902
> 
> 
> On Tue, Apr 16, 2019 at 7:22 AM Keith Culotta via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> Justin,
>> 
>> Thank you for the suggestion.
>> 
>> I switched the deselect-all code to
>>   LISTBOX SELECT ROW(*;"valsBox";1;lk replace selection)
>>   LISTBOX SELECT ROW(*;"valsBox";1;lk remove from selection)
>> and the selection did clear, however as soon as this add-to-selection code
>> is executed
>>   LISTBOX SELECT ROW(*;"valsBox";0;lk replace selection)
>> 4D immediately crashes.
>> 
>> If all 40k rows get deselected, using either method, and selecting them
>> all again is done in a loop, the loop finishes in about two seconds.
>> At that point the macOS spinning wheel appears for three minutes. The
>> highlight then appears and control is returned to the app.
>> The fewer the records being highlighted, the shorter the macOS wheel spins.
>> 
>> Regards,
>> Keith - CDI
>> 
>>> On Apr 15, 2019, at 7:50 PM, Justin Carr via 4D_Tech <
>> 4d_tech@lists.4d.com> wrote:
>>> 
>>> On 16 Apr 2019, at 5:04 am, Keith Culotta via 4D_Tech <
>> 4d_tech@lists.4d.com> wrote:
>>>> 
>>>> Hello,
>>>> 
>>>> I'm looking for a fast way to highlight a selection of rows in an
>> entity selection listbox.  The way I am aware of works OK unless the
>> listbox gets a large number of rows.
>>>> 
>>>> Adding records to the Selected Items name in the Property list does not
>> highlight the listbox contents.  The equivalent of adding records to the
>> "UserSet" is not available with entity selection listboxes.
>>>> 
>>>> Highlighting all with LISTBOX SELECT ROW(*;"listBox";0;lk add to
>> selection) crashes 4D if the listbox contains enough records.
>>>> LISTBOX SELECT ROW(*;"listBox";$position;lk add to selection) crashes
>> if put in a fast FOR loop.  If the loop is executed more slowly there is
>> success.  The slowness comes from looking for entitySelected[i] within the
>> entity selection and highlighting its position in the listbox.
>>>> 
>>>> Is there a better way to get there?
>>> 
>>> Hey Keith
>>> 
>>> Are you clearing the listbox selection first (with LISTBOX SELECT
>> ROW(*;"listBox";0;lk remove from selection)? If so, that is probably the
>> cause of the crashing you are seeing. You can workaround it by highlighting
>> and unhighlighting the first row instead, i.e.
>>> 
>>> LISTBOX SELECT ROW(*;"listBox";1;lk replace selection)
>>> LISTBOX SELECT ROW(*;"listBox";1;lk remove from selection)
>>> 
>>> cheers
>>> Justin
>> 
>> **
>> 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: Fast way to highlight a listbox entity selection

2019-04-16 Thread Keith Culotta via 4D_Tech
Checking the listbox's Property "Hide extra blank rows" stopped 4D from 
unexpectedly quitting when using 
  LISTBOX SELECT ROW(*;"valsBox";0;lk replace selection)  // and it's fast
or
  just having a lot of rows to highlight in a loop.

The crashing showed up more often in compiled mode before the change.  Still 
have the spinning wheel however.

Keith - CDI


> On Apr 16, 2019, at 9:22 AM, Keith Culotta via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Justin,
> 
> Thank you for the suggestion.
> 
> I switched the deselect-all code to
>   LISTBOX SELECT ROW(*;"valsBox";1;lk replace selection)  
>   LISTBOX SELECT ROW(*;"valsBox";1;lk remove from selection)
> and the selection did clear, however as soon as this add-to-selection code is 
> executed
>   LISTBOX SELECT ROW(*;"valsBox";0;lk replace selection)
> 4D immediately crashes.
> 
> If all 40k rows get deselected, using either method, and selecting them all 
> again is done in a loop, the loop finishes in about two seconds.  
> At that point the macOS spinning wheel appears for three minutes. The 
> highlight then appears and control is returned to the app.
> The fewer the records being highlighted, the shorter the macOS wheel spins.
> 
> Regards,
> Keith - CDI
> 
>> On Apr 15, 2019, at 7:50 PM, Justin Carr via 4D_Tech <4d_tech@lists.4d.com> 
>> wrote:
>> 
>> On 16 Apr 2019, at 5:04 am, Keith Culotta via 4D_Tech <4d_tech@lists.4d.com> 
>> wrote:
>>> 
>>> Hello,
>>> 
>>> I'm looking for a fast way to highlight a selection of rows in an entity 
>>> selection listbox.  The way I am aware of works OK unless the listbox gets 
>>> a large number of rows.
>>> 
>>> Adding records to the Selected Items name in the Property list does not 
>>> highlight the listbox contents.  The equivalent of adding records to the 
>>> "UserSet" is not available with entity selection listboxes.
>>> 
>>> Highlighting all with LISTBOX SELECT ROW(*;"listBox";0;lk add to selection) 
>>> crashes 4D if the listbox contains enough records.
>>> LISTBOX SELECT ROW(*;"listBox";$position;lk add to selection) crashes if 
>>> put in a fast FOR loop.  If the loop is executed more slowly there is 
>>> success.  The slowness comes from looking for entitySelected[i] within the 
>>> entity selection and highlighting its position in the listbox.
>>> 
>>> Is there a better way to get there?
>> 
>> Hey Keith
>> 
>> Are you clearing the listbox selection first (with LISTBOX SELECT 
>> ROW(*;"listBox";0;lk remove from selection)? If so, that is probably the 
>> cause of the crashing you are seeing. You can workaround it by highlighting 
>> and unhighlighting the first row instead, i.e. 
>> 
>> LISTBOX SELECT ROW(*;"listBox";1;lk replace selection)
>> LISTBOX SELECT ROW(*;"listBox";1;lk remove from selection)
>> 
>> cheers
>> Justin
> 
> **
> 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: Fast way to highlight a listbox entity selection

2019-04-16 Thread Keith Culotta via 4D_Tech
Justin,

Thank you for the suggestion.

I switched the deselect-all code to
   LISTBOX SELECT ROW(*;"valsBox";1;lk replace selection)   
   LISTBOX SELECT ROW(*;"valsBox";1;lk remove from selection)
and the selection did clear, however as soon as this add-to-selection code is 
executed
   LISTBOX SELECT ROW(*;"valsBox";0;lk replace selection)
4D immediately crashes.

If all 40k rows get deselected, using either method, and selecting them all 
again is done in a loop, the loop finishes in about two seconds.  
At that point the macOS spinning wheel appears for three minutes. The highlight 
then appears and control is returned to the app.
The fewer the records being highlighted, the shorter the macOS wheel spins.

Regards,
Keith - CDI

> On Apr 15, 2019, at 7:50 PM, Justin Carr via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> On 16 Apr 2019, at 5:04 am, Keith Culotta via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
>> 
>> Hello,
>> 
>> I'm looking for a fast way to highlight a selection of rows in an entity 
>> selection listbox.  The way I am aware of works OK unless the listbox gets a 
>> large number of rows.
>> 
>> Adding records to the Selected Items name in the Property list does not 
>> highlight the listbox contents.  The equivalent of adding records to the 
>> "UserSet" is not available with entity selection listboxes.
>> 
>> Highlighting all with LISTBOX SELECT ROW(*;"listBox";0;lk add to selection) 
>> crashes 4D if the listbox contains enough records.
>> LISTBOX SELECT ROW(*;"listBox";$position;lk add to selection) crashes if put 
>> in a fast FOR loop.  If the loop is executed more slowly there is success.  
>> The slowness comes from looking for entitySelected[i] within the entity 
>> selection and highlighting its position in the listbox.
>> 
>> Is there a better way to get there?
> 
> Hey Keith
> 
> Are you clearing the listbox selection first (with LISTBOX SELECT 
> ROW(*;"listBox";0;lk remove from selection)? If so, that is probably the 
> cause of the crashing you are seeing. You can workaround it by highlighting 
> and unhighlighting the first row instead, i.e. 
> 
> LISTBOX SELECT ROW(*;"listBox";1;lk replace selection)
> LISTBOX SELECT ROW(*;"listBox";1;lk remove from selection)
> 
> cheers
> Justin

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

Fast way to highlight a listbox entity selection

2019-04-15 Thread Keith Culotta via 4D_Tech
Hello,

I'm looking for a fast way to highlight a selection of rows in an entity 
selection listbox.  The way I am aware of works OK unless the listbox gets a 
large number of rows.

Adding records to the Selected Items name in the Property list does not 
highlight the listbox contents.  The equivalent of adding records to the 
"UserSet" is not available with entity selection listboxes.

Highlighting all with LISTBOX SELECT ROW(*;"listBox";0;lk add to selection) 
crashes 4D if the listbox contains enough records.
LISTBOX SELECT ROW(*;"listBox";$position;lk add to selection) crashes if put in 
a fast FOR loop.  If the loop is executed more slowly there is success.  The 
slowness comes from looking for entitySelected[i] within the entity selection 
and highlighting its position in the listbox.

Is there a better way to get there?

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: Count in Text

2019-04-09 Thread Keith Culotta via 4D_Tech
That is true.  If it's not a character count that is needed, this would break 
words.  DISTINCT VALUES, GET TEXT KEYWORDS, and Count in array would help in 
that case.

> On Apr 9, 2019, at 3:37 PM, Charles Miller via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> That will not work, as you would also change then, therefore etc. I
> did not think it 100% through, but putting in an array would solve the
> problem as you could see if position = search word and only increment
> when iot did. You would also have to decide is The = the etc
> 
> Regards
> Chuck
> 
> On Tue, Apr 9, 2019 at 4:29 PM Keith Culotta via 4D_Tech
> <4d_tech@lists.4d.com> wrote:
>> 
>> ...and this.  It's probably slower than using Position, but I'd have to test 
>> to be sure.  (3 Lengths and 1 Replace string)
>> 
>> C_LONGINT($count;$len1;$len2;$lenFind)
>> 
>> $string:="This message and any attached documents contain information which 
>> maybe confidential, subject to privilege or exempt from disclosure 
>> underapplicable law.  These materials are intended only for the use of 
>> theintended recipient. If you are not the intended recipient of 
>> thistransmission, you are hereby notified that any distribution,disclosure, 
>> printing, copying, storage, modification or the taking ofany action in 
>> reliance upon this transmission is strictly prohibited.Delivery of this 
>> message to any person other than the intendedrecipient shall not compromise 
>> or waive such confidentiality,privilege or exemption from disclosure as to 
>> this communication.tf"
>> 
>> $len1:=Length($string)
>> $find:="the"
>> $lenFind:=Length($find)
>> $string2:=Replace string($string;$find;"";*)  // optional *
>> $len2:=Length($string2)
>> 
>> $count:=$len1-$len2/$lenFind
>> 
>> ALERT(String($count))
>> 
>> Keith - CDI
>> 
>>> On Apr 9, 2019, at 3:05 PM, Charles Miller via 4D_Tech 
>>> <4d_tech@lists.4d.com> wrote:
>>> 
>>> Not sure what you are really asking for. I think you have to roll your
>>> own in any case if you have text as follows:
>>> 
>>> $string:="this is a test of the find in string. in case you missed the 
>>> point."
>>> 
>>> To find "the"
>>> There are multiple ways, one is to parse the text into arrays based up
>>> words and find in array. There seems to be a new command in 17 r
>>> release that will do the parse for you
>>> 
>>> The second way is to do a position inside a repeat loop
>>> c_Longint($pos_l;$start_l;$Count_L)
>>> $start_l:=0
>>> $Count_L:=0
>>> repeat
>>> $pos_l:=position("the";$string;$start_L)
>>> if($pos_l>0)
>>> $Count_L:=$Count_L+1
>>> $strart_L:=$pos_L+1
>>> end if
>>> until($Pos_L<1)
>>> 
>>> You should be able to change the code to use find in array. I might
>>> sort the array first
>>> Hope this helps
>>> 
>>> Regards
>>> Chuck
>>> On Tue, Apr 9, 2019 at 3:39 PM Peter Mew via 4D_Tech
>>> <4d_tech@lists.4d.com> wrote:
>>>> 
>>>> Hi
>>>> Is there a 4D command that will count the number of occurences of
>>>> character, in string
>>>> 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: Count in Text

2019-04-09 Thread Keith Culotta via 4D_Tech
...and this.  It's probably slower than using Position, but I'd have to test to 
be sure.  (3 Lengths and 1 Replace string)

C_LONGINT($count;$len1;$len2;$lenFind)

$string:="This message and any attached documents contain information which 
maybe confidential, subject to privilege or exempt from disclosure 
underapplicable law.  These materials are intended only for the use of 
theintended recipient. If you are not the intended recipient of 
thistransmission, you are hereby notified that any distribution,disclosure, 
printing, copying, storage, modification or the taking ofany action in reliance 
upon this transmission is strictly prohibited.Delivery of this message to any 
person other than the intendedrecipient shall not compromise or waive such 
confidentiality,privilege or exemption from disclosure as to this 
communication.tf"

$len1:=Length($string)
$find:="the"
$lenFind:=Length($find)
$string2:=Replace string($string;$find;"";*)  // optional *
$len2:=Length($string2)

$count:=$len1-$len2/$lenFind

ALERT(String($count))

Keith - CDI

> On Apr 9, 2019, at 3:05 PM, Charles Miller via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Not sure what you are really asking for. I think you have to roll your
> own in any case if you have text as follows:
> 
> $string:="this is a test of the find in string. in case you missed the point."
> 
> To find "the"
> There are multiple ways, one is to parse the text into arrays based up
> words and find in array. There seems to be a new command in 17 r
> release that will do the parse for you
> 
> The second way is to do a position inside a repeat loop
> c_Longint($pos_l;$start_l;$Count_L)
> $start_l:=0
> $Count_L:=0
> repeat
> $pos_l:=position("the";$string;$start_L)
> if($pos_l>0)
> $Count_L:=$Count_L+1
> $strart_L:=$pos_L+1
> end if
> until($Pos_L<1)
> 
> You should be able to change the code to use find in array. I might
> sort the array first
> Hope this helps
> 
> Regards
> Chuck
> On Tue, Apr 9, 2019 at 3:39 PM Peter Mew via 4D_Tech
> <4d_tech@lists.4d.com> wrote:
>> 
>> Hi
>> Is there a 4D command that will count the number of occurences of
>> character, in string
>> 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
>> **
> 
> 
> 
> -- 
> -
> Chuck Miller Voice: (617) 739-0306 Fax: (617) 232-1064
> Informed Solutions, Inc.
> Brookline, MA 02446 USA Registered 4D Developer
>   Providers of 4D, Sybase & SQL Server connectivity
>  http://www.informed-solutions.com
> -
> This message and any attached documents contain information which may
> be confidential, subject to privilege or exempt from disclosure under
> applicable law.  These materials are intended only for the use of the
> intended recipient. If you are not the intended recipient of this
> transmission, you are hereby notified that any distribution,
> disclosure, printing, copying, storage, modification or the taking of
> any action in reliance upon this transmission is strictly prohibited.
> Delivery of this message to any person other than the intended
> recipient shall not compromise or waive such confidentiality,
> privilege or exemption from disclosure as to this communication.
> **
> 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: Code signing works on one app but fails on another

2019-03-21 Thread Keith Culotta via 4D_Tech
I have been copying lines similar to these and then pasting them into the 
Terminal.  Not sure about the details of these steps, but the app installs and 
runs.  The pkg file ends up in the Home folder.

// At the $ prompt (if the app is in the Documents folder)
xattr -cr "Documents/myApp.app"
codesign --force --deep -s "Mac Developer: My Name (mynumber)" -f 
"Documents/myApp.app"
codesign -dvvv "Documents/myApp.app"

// Move the app to Applications then Build a signed package (before running the 
app after signing it)
productbuild --component /Applications/myApp.app /Applications myApp.pkg --sign 
"Developer ID Installer: My Name (mynumber)"

Keith - CDI

> On Mar 21, 2019, at 6:52 AM, Pat Bensky via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Using v17
> I've added our Apple OSX signing certificate to a client's app built with
> 4D v17. It compiles and runs just fine.
> I've added the same certificate to another app, using the same version of
> 4D and the same compiler settings. However with this one, at the end of
> compilation, I get the message "Code signature failed".
> Any suggestions as to why it would work for one app but not for another? As
> far as I can see, the settings are identical.
> 
> Pat
 
**
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't get to development mode!

2019-03-12 Thread Keith Culotta via 4D_Tech
I have seen it ignore the Development mode menu selection until I closed an 
open window.  

or Does it go to the compiled version, requiring you to select "restart 
interpreted" from the "run" menu.

Keith - CDI

> On Mar 12, 2019, at 5:49 PM, Doug Hall via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I need some quick help. I'm right in the middle of trying to upgrade my 4D
> structure and I can't get into "Development" mode in 4D! I opened the *.4DB
> file, said to open local database. I selected Interpreted database and
> chose my structure file. I know this is a bit of a workaround, but rather
> than have a menu in my (Foundation-based) structure that allows me to
> change to development mode from , I simply go to the about 4D menu and
> + click on a button, then choose go to
> Development Mode, there.
> 
> Problem is, it doesn't! I checked to make sure I have the Unlimited Desktop
> license installed for the current year.
> 
> I currently went into Maintenance Mode to rebuild the Data file ( I needed
> to do this, anyway, and knew so beforehand). However, I'm not so sure I
> will be able to compile my structure when it gets done! Can someone please
> quickly throw some ideas my way??!!!
> 
> Thanks,
> Doug Hall
> AIDT
> **
> 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
**

Loose Object attribute typing

2019-03-12 Thread Keith Culotta via 4D_Tech
This seems to be a really advantageous way to use objects.  It compiles and 
returns good results.  I can see where caution would be advised, but is using 
an object this way going to break eventually as the 4D language matures, or is 
it an advantage of objects?

  // 
  // Method: test_Calc 
  // INPUT1: Object  
C_OBJECT($obj;$1)
$obj:=$1
$obj.val:=$obj.val*3

 
  // ---
  // Method: Some_Method 
C_OBJECT($obj)
If (Shift down)
$obj:=New object("val";"ward_a")  // Alert displays "ward_award_award_a"
Else 
$obj:=New object("val";30)  // Alert displays 90
End if 
test_Calc ($obj)
ALERT(String($obj.val))


//---
//  this would not compile
// If (Shift down)
//  $v:="ward_a"
// Else 
//  $v:=30
// End if 

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: How to display read-only input form

2019-02-06 Thread Keith Culotta via 4D_Tech
I have simulated that effect with code like this:

If (Read only state([Docs])) & (Form event=On After Edit)
vContent:=[Docs]Content
End if 

Where vContent is editable (no entry filter).

Keith - CDI

> On Feb 6, 2019, at 3:31 PM, Jim Crate via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Also, is there a way to make a field non-enterable but allow text to be 
> copied?
> 
> Jim Crate

**
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 display read-only input form

2019-02-06 Thread Keith Culotta via 4D_Tech
Can you call Modify Record with code either lock and reload the record(s), or 
disable entry for all objects?

Keith - CDI

> On Feb 6, 2019, at 3:31 PM, Jim Crate via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> From a listbox view, I’d like to open the input form for a record but not 
> allow the user to change any info. I tried using DISPLAY RECORD instead of 
> MODIFY RECORD, but it just displays the form and immediately closes. If I set 
> the table to read only before loading the record, MODIFY RECORD just shows an 
> alert complaining that the record is locked, and doesn’t show the input form. 
> So I set the form fields to be not enterable, but while text can be selected, 
> it can’t be copied. 
> 
> I thought about using DIALOG, but that would require specifying the input 
> form name in a variable higher up the call chain, because while we can use 
> FORM SET INPUT to set the input form for a table, there is no accompanying 
> "Form Get Input” command that I can find. I know this could probably be 
> plugged into form storage instead of a process variable in V17, but I’m not 
> on v17 yet and logically that’s not much different than using a process 
> variable, we’re still introducing a separate place to store some data that we 
> should be able to get the same way we specify it.
> 
> Is there a convenient way to mimic the ease of DISPLAY SELECTION / MODIFY 
> SELECTION to allow read/only or read/write access when using a listbox? Is 
> DIALOG the only option?
> 
> Also, is there a way to make a field non-enterable but allow text to be 
> copied?
> 
> Jim Crate
> 
> **
> 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 get the Window ref of the 4D 64 bit app window

2019-01-31 Thread Keith Culotta via 4D_Tech
Doing WINDOW LIST($aWin) in On Startup will return the window's ref in the 
array (on the Mac anyway).

Keith - CDI

> On Jan 31, 2019, at 4:40 PM, Peter Hay via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi,
> 
> I'm trying to get the Window reference of 4D's application window so that I
> can put a custom icon on it, and change the window title.
> 
> This is for 64 bit 4D v17R3 on MS Windows.
> 
> I've been doing this for years with the excellent Win32API
> using gui_GetWindowEx ("").  This works fine with 32 Bit 4D apps, but fails
> on 64 bit apps.  I've checked with Orchard Software, and they confirm the
> issue, but they're still using 32 bit 4D Remote, so it's not a priority for
> them.  I have no problem with this stance.  It's their plugin, and it's
> free, and I'm very grateful for them giving it away.
> 
> So, does anyone know how to get the 4D window ref of the main 4D
> application MDI window for 64 bit 4D apps?
> 
> Thanks.
> --
> Pete Hay
> Managing Director
> Foreground Software Limited
> New Zealand
> **
> 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 Create a Browser-Like Tabbed Interface

2019-01-21 Thread Keith Culotta via 4D_Tech
A tab control will not report a click when the click is on the current tab 
"page", but Safari seems to work that way too (no reaction to a click on the 
current page's tab).  Clicking another of the tab's areas will generate a click.

SVG pictures offer a good way to see clicks.  You'll always get an object's ID, 
and you can put almost anything in the picture.

Keith - CDI

> On Jan 21, 2019, at 10:51 AM, Douglas von Roeder via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> I'd like to create an interface that mimics the functionality and
> appearance of the tab control in Chrome or Safari.
> 
> Given the functionality of the 4D tab control (once a tab is clicked, it no
> longer reports mouse clicks) what are my options for building a highly
> functional, tabbed UI?
> 
> --
> Douglas von Roeder
> 949-336-2902

**
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: v13- Chasing Relations

2019-01-08 Thread Keith Culotta via 4D_Tech
Would these help?

https://doc.4d.com/4Dv17/4D/17/GET-RELATION-PROPERTIES.301-3729513.en.html 

https://doc.4d.com/4Dv17/4D/17/dataClassAttributerelatedDataClass.303-3884018.en.html
 



Keith - CDI

> On Jan 8, 2019, at 2:47 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> given a pointer to a table, or a pointer to a field of a table,
> I want to be able, for the current record of this table, to :
> - iterate over all the fields of the table - I know how to do this
> -- determine if the current field has 1 or more relations - I do not 
> know how to do this
> --- if there are 1 or more relations, I want 'follow' each relation to 
> determine if there exists 1 or more related records at the other end of 
> the relation - I am not sure I know how to do this
> 
> what I want looks something like this
> 
> $Table_Num:=table->([table])
> $Field_Count:=get last field number([table])
> 
> For ($i; 1; $Field_Count)
> 
> if (field number valid($Table_Num; $i))
>  // get field relational information
> 
>  // if (relations)
> 
>   // For ($Realation_count)  
>// check related table for records
> 
>// if (related records exist) 
> $Dependencies := True
> 
> // exit loops
> 
> Thanks
> Chip
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 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: 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: 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: 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: 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: 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: 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: 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
[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
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: 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: 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: 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: 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
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
**

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

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

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

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

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

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

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

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

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

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

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

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

  1   2   >