[Lazarus] RE : Displaying text with colour and insertion point

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Wed May 16 20:59:07 CEST 2012


Ludo Brands wrote:
>> Looking at the CmdLine component, it appears OK as a command window 
>> (i.e. accepting keyboard input etc.) but isn't so hot when 
>> the principal 
>> requirement is to display text pushed into the underlying strings 
>> storage from elsewhere: in particular, there isn't a way to force the 
>> insertion point marker to the end of what's just been output.
> 
> Do you mean that when typing a command the output of the command is
> overwriting part of the previous output added with TCmdBox.Write or
> TCmdBox.WriteStream? As long as data written with TCmdBox.Write or
> TCmdBox.WriteStream is terminated by a linefeed (TCmdBox.Writeln('') or a
> #10 as last character) that doesn't happen. 

No, what I mean is that I want to literally put the marker where a 
mechanical print head would put the next character. In addition I want 
to be able to (non-destructively) backspace, i.e. the insertion point 
(caret marker etc.) should be stepped back towards the start of the 
line, and a subsequent TCmdBox.Write will overwrite.

Very much like a mechanical typewriter, since that was how terminals of 
that vintage behaved. There's example output at 
http://wotho.ethz.ch/APL-1130/2741_APL_Demo.png (it's ETH, but I don't 
think there's a Pascal connection), I've got most of a standalone 
terminal emulator that behaves in the same way but haven't got the 
colour aspect working due to lack of a suitable component (and lack os 
sufficient skill/experience to write my own).

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list