Tip: Show List Columns over 255 characters with a Blank Picture

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?

1 Like

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  ~@s255@/#1#'                             &|
                  '80L(2)~Format Picture: @s200 -- Runtime set Picture=@s1029 ~@s200@#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.

5 Likes

I normally put long columns in a multi-line prompt or a read only scrollable text field on the side.
But I’ll format the column in the list now with a blank picture.

1 Like