[Lazarus] Hooking Synedit's cut and copy shortcuts
Mark Morgan Lloyd
markMLl.lazarus at telemetry.co.uk
Sat Dec 22 17:04:50 CET 2012
Martin wrote:
> On 21/12/2012 19:54, Mark Morgan Lloyd wrote:
>> I'm in the middle of adding a shared clipboard to a text editor based
>> on (Lazarus's) SynEdit. This is a simple stopgap based on a backend
>> database, but also allows me to exercise PostgreSQL's listen/notify
>> and hopefully also the Firebird equivalent both of which I want for
>> something else.
>>
>> What I've got works fine if I use a menu entry to do copy or cut, but
>> is there a simple way to hook SynEdit's reaction to ^C and ^X so that
>> I can transfer stuff to the backend automatically?
>>
> OnProcessCommand
>
> (if not that then OnProcessUserCommand commands are splitted into build
> in and user. ecCopy ecCut ecPaste should be build in)
>
> The above only works if lynedit handles the keyboard.
>
> If you call SynEdit.CopyToClipboard (TAction might do that?) then the
> above does not trigger
>
>
>
> use
>
> property OnCutCopy: TSynCopyPasteEvent read FOnCutCopy write
> FOnCutCopy;
> property OnPaste: TSynCopyPasteEvent read FOnPaste write FOnPaste;
Thanks Martin, noted. As an interim measure I ended up detecting ^C etc.
in the key-up event, which /might/ be safer since I'm already filtering
keys to implement an APL-style keyboard and /might/ be the only way to
handle e.g. a non-standard clipboard-swap operation. However I'll
revisit "the proper way" when some of the dust has settled, one
particular thing that I'll want to check is what happens when one runs
with e.g. a Sun keyboard which has explicit cut/copy keys.
--
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