O7: Colour for text on windows

Jim Creak jim at jacsoft.co.nz
Thu Nov 8 18:23:19 EST 2018


A little while back Rudolf gave a good reply to how to create text with Bold and underline through programming … does anyone know how to add colour to text in a similar way?

Thanks
Jim

JACSoft Programming Ltd. <http://www.jacsoft.co.nz/main.shtml>
> On 2/08/2018, at 10:02 pm, Rudolf Bargholz <rudolf at bargholz.ch> wrote:
> 
> Hi Wendy,
> 
> My solution takes into account, that in a text background object in a report you can print bold, italic or underline text.
> 
> I create a text variable in the report, then add a text background object to the report with the contents "[MyVariable]" with $vertextend=kTrue. This will print just like a normal entry field on the report. The trick is to have a positioning after the field, which allows the field to print over many lines, taking into account page breaks, and a positioning section before the field. I override the $print in the before-positioning:
> 
> Calculate ItemInfoLabelText as iItemInfoText
> Do lStringFuncObj.$convertStringToLabelText(ItemInfoLabelText)
> Do default
> 
> The $convertStringToLabelText does the following to the field reference variable that is passed it from the report:
> 
> If pos('<p>',pfString)>0
> Calculate pfString as replaceall(pfString,'<p>',chr(13,10))
> End If
> If pos('<p/>',pfString)>0
> Calculate pfString as replaceall(pfString,'<p/>',chr(13,10))
> End If
> If pos('<p />',pfString)>0
> Calculate pfString as replaceall(pfString,'<p />',chr(13,10))
> End If
> If pos('<P>',pfString)>0
> Calculate pfString as replaceall(pfString,'<P>',chr(13,10))
> End If
> If pos('<P/>',pfString)>0
> Calculate pfString as replaceall(pfString,'<P/>',chr(13,10))
> End If
> If pos('<P />',pfString)>0
> Calculate pfString as replaceall(pfString,'<P />',chr(13,10))
> End If
> 
> If pos('<b>',pfString)>0
> Calculate pfString as replaceall(pfString,'<b>',l_Bold)
> End If
> If pos('<i>',pfString)>0
> Calculate pfString as replaceall(pfString,'<i>',l_Italic)
> End If
> If pos('<u>',pfString)>0
> Calculate pfString as replaceall(pfString,'<u>',l_Underline)
> End If
> If pos('<bi>',pfString)>0
> Calculate pfString as replaceall(pfString,'<bi>',l_BoldItalic)
> End If
> If pos('<ib>',pfString)>0
> Calculate pfString as replaceall(pfString,'<ib>',l_BoldItalic)
> End If
> If pos('<bu>',pfString)>0
> Calculate pfString as replaceall(pfString,'<bu>',l_BoldUnderline)
> End If
> If pos('<ub>',pfString)>0
> Calculate pfString as replaceall(pfString,'<ub>',l_BoldUnderline)
> End If
> If pos('<ui>',pfString)>0
> Calculate pfString as replaceall(pfString,'<ui>',l_ItalicUnderline)
> End If
> If pos('<iu>',pfString)>0
> Calculate pfString as replaceall(pfString,'<iu>',l_ItalicUnderline)
> End If
> If pos('<biu>',pfString)>0
> Calculate pfString as replaceall(pfString,'<biu>',l_BoldItalicUnderline)
> End If
> If pos('<bui>',pfString)>0
> Calculate pfString as replaceall(pfString,'<bui>',l_BoldItalicUnderline)
> End If
> If pos('<ubi>',pfString)>0
> Calculate pfString as replaceall(pfString,'<ubi>',l_BoldItalicUnderline)
> End If
> If pos('<uib>',pfString)>0
> Calculate pfString as replaceall(pfString,'<uib>',l_BoldItalicUnderline)
> End If
> If pos('<iub>',pfString)>0
> Calculate pfString as replaceall(pfString,'<iub>',l_BoldItalicUnderline)
> End If
> If pos('<ibu>',pfString)>0
> Calculate pfString as replaceall(pfString,'<ibu>',l_BoldItalicUnderline)
> End If
> 
> If pos('</b>',pfString)>0
> Calculate pfString as replaceall(pfString,'</b>',l_Normal)
> End If
> If pos('</i>',pfString)>0
> Calculate pfString as replaceall(pfString,'</i>',l_Normal)
> End If
> If pos('</u>',pfString)>0
> Calculate pfString as replaceall(pfString,'</u>',l_Normal)
> End If
> If pos('</bi>',pfString)>0
> Calculate pfString as replaceall(pfString,'</bi>',l_Normal)
> End If
> If pos('</ib>',pfString)>0
> Calculate pfString as replaceall(pfString,'</ib>',l_BoldItalic)
> End If
> If pos('</bu>',pfString)>0
> Calculate pfString as replaceall(pfString,'</bu>',l_Normal)
> End If
> If pos('</ub>',pfString)>0
> Calculate pfString as replaceall(pfString,'</ub>',l_Normal)
> End If
> If pos('</ui>',pfString)>0
> Calculate pfString as replaceall(pfString,'</ui>',l_Normal)
> End If
> If pos('</iu>',pfString)>0
> Calculate pfString as replaceall(pfString,'</iu>',l_Normal)
> End If
> If pos('</biu>',pfString)>0
> Calculate pfString as replaceall(pfString,'</biu>',l_Normal)
> End If
> If pos('</bui>',pfString)>0
> Calculate pfString as replaceall(pfString,'</bui>',l_Normal)
> End If
> If pos('</ubi>',pfString)>0
> Calculate pfString as replaceall(pfString,'</ubi>',l_Normal)
> End If
> If pos('</uib>',pfString)>0
> Calculate pfString as replaceall(pfString,'</uib>',l_Normal)
> End If
> If pos('</iub>',pfString)>0
> Calculate pfString as replaceall(pfString,'</iub>',l_Normal)
> End If
> If pos('</ibu>',pfString)>0
> Calculate pfString as replaceall(pfString,'</ibu>',l_Normal)
> End If
> 
> Each variable, e.g. "l_Normal " is associated with a value:
> 
> l_Bold   binfromhex('1B02303030303030303123')
> l_BoldItalic   binfromhex('1B02303030303030303323')
> l_BoldItalicUnderline   binfromhex('1B02303030303030303723')
> l_BoldUnderline   binfromhex('1B02303030303030303523')
> l_Italic   binfromhex('1B02303030303030303223')
> l_ItalicUnderline   binfromhex('1B02303030303030303623')
> l_Normal   binfromhex('1B02303030303030303023')
> l_Underline   binfromhex('1B02303030303030303423')
> 
> This emulates what happens when you manually enter text into a text background report object on the report.
> 
> The users can then enter a text
> 
> Abc<b>DEF</b>ghi
> 
> And the DEF will be printed in bold on the report.
> 
> Regards
> 
> Rudolf Bargholz
> 
> -----Ursprüngliche Nachricht-----
> Von: omnisdev-en [mailto:omnisdev-en-bounces at lists.omnis-dev.com] Im Auftrag von Wendy
> Gesendet: Donnerstag, 2. August 2018 09:02
> An: 'OmnisDev List - English' <omnisdev-en at lists.omnis-dev.com>
> Betreff: Bold in printing
> 
> Hi
> 
> 
> 
> I want the user to be able to bold text in a document - I am sure that this worked some years ago but does not work any more - I am hoping someone can help.
> 
> 
> 
> The user can put [kbold] at the start of the text to bold and [kplain] at the end , they can also put [knewline] - I then replace these with the characters required - this works fine for the new line but not the bold.
> 
> 
> 
> The characters I am using are 
> 
> 
> 
> Library variable GV_BOLD (Character   2) = con(chr(14),chr(2))
> 
> Library variable GV_NORMAL (Character   2) = con(chr(14),chr(1))
> 
> Library variable GV_NEWLINE (Character   1) = chr(13)
> 
> 
> 
> What am I doing wrong? 
> 
> 
> 
> Many thanks for your help
> 
> Wendy Osbaldestin
> 
> Wizard Computer Services
> 
> Tel:  01260271647
> 
> Mobile: 07740541021
> 
> 
> 
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com Start a new message -> mailto:omnisdev-en at lists.omnis-dev.com 
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com
> Start a new message -> mailto:omnisdev-en at lists.omnis-dev.com 




More information about the omnisdev-en mailing list