The Clarion IDE does not allow String Pictures over 255 bytes (@s255) in a LIST Format or ENTRY. Often you have data from a file where you may not know the length, e.g. code lines. How can you show more than 255?
In a LIST you can show more than 255 by simply leaving the Column Picture Blank:
Below you can see line 1 with the blank Picture goes out to the STRING(1200) limit defined for the field. the Window is so wide I needed to split it. You could put a Scroll on the column i.e. S(1200).
Note I change the headings at runtime to show the “Runtime PROPLIST:Picture” to see if the RTL changed the picture.
Line 3 in that List had a Design time Format string Picture of @s200. At runtime it was set to @1029 which failed and the RTL set it to blank so it still works.
Also on this Window is something @jslarve has pointed out before that an ENTRY control can have its runtime picture (Prop:Text} set to values greater than 255. You cannot set the picture to Blank on an ENTRY. One use for that might be a file name can be 260 bytes.
Code snippets from the test:
PicTestQ QUEUE,PRE(PicQ)
Verbose STRING(1200) !PicQ:Verbose
END
LIST,AT(8,22,,77),FULL,USE(?List:PicTestQ),VSCROLL,FROM(PicTestQ),|
FORMAT('[' &|
'80L(2)~Format Picture: Blank ~/' &|
'80L(2)~Format Picture: @s255 [email protected]@/#1#' &|
'80L(2)~Format Picture: @s200 -- Runtime set [email protected] [email protected]@#1#' &|
']|')
PROMPT('@s255 Entry'),AT(7,108),USE(?Prompt1)
ENTRY(@s255),AT(52,108,,11),FULL,USE(PicQ:Verbose,, ?PicQ:Verbose_255)
PROMPT('@s1024 Entry'),AT(7,122),USE(?Prompt2)
ENTRY(@s255),AT(52,122,,11),FULL,USE(PicQ:Verbose,, ?PicQ:Verbose_1024)
STRING('ENTRY PROP:Text = @s1024 at runtime works'),AT(7,135),USE(?Prompt3)
CODE
PicQ:Verbose=ALL('I',255-4) & '_255-7890123456789012345678901234567890'
PicQ:Verbose[1000: SIZE(PicQ:Verbose) ]='One Thousand ' & ALL('1234567890',200)
ADD(PicTestQ)
!Try to set Column 3 Picture at runtime > 255, fails leaves Blank... that's ok
?List:PicTestQ{PROPLIST:Picture,3}='@s1029'
!Put runtime Column Pictures in Heading
LOOP ColNo=1 TO 3
?List:PicTestQ{PROPLIST:Header, ColNo} = ?List:PicTestQ{PROPLIST:Header,ColNo} & |
' -- Runtime PROPLIST:Picture="' & ?List:PicTestQ{PROPLIST:Picture,ColNo} &'"'
END
?PicQ:Verbose_1024{PROP:Text}='@s1024' !set ENTRY at runtime > 255 works
I have no idea if this works with AnyScreen. Maybe someone can confirm and post here.