[Lazarus] Memo for touchscreen

Malcolm Poole malcolm at lingua-z.co.uk
Thu Jul 18 21:24:35 CEST 2013


On 18/07/13 12:54, Koenraad Lelong wrote:
> For a touchscreen-application  (so no real keyboard) I need something
> like a memo.
> I first tried a memo, but how do I enter text at the caret ? And the
> caretpos is readonly.
> Next I tried synMemo, but if I move the caret, the caret disappears. How
> can I show it ?
> How do I send a BackSpace, Delete ?
> How do I hide the "rightedge" of the synMemo ? Just set it to the
> backgroundcolor ?
>
> Is there a better component ?

TMemo should work - just use SelStart instead of CaretPos.

Try the code below to get you started: Form with a Memo and 2 buttons, 
named LetterAButton and DeleteButton.

Regards,

Malcolm

//============================================================

procedure TForm1.LetterAButtonClick ( Sender: TObject ) ;
var
   testcaretpos: Integer;
begin
   testcaretpos := Memo1.SelStart;
   Memo1.Text := Copy(Memo1.Text, 1, testcaretpos) + 'A'
	+ Copy(Memo1.Text, testcaretpos+1, MaxInt);
   Inc(testcaretpos);
   Memo1.SelStart := testcaretpos;
   Memo1.SetFocus;
end;

procedure TForm1.DeleteButtonClick ( Sender: TObject ) ;
var
   testcaretpos: Integer;
begin
   testcaretpos := Memo1.SelStart;
   Memo1.Text := Copy(Memo1.Text, 1, testcaretpos)
	+ Copy(Memo1.Text, testcaretpos+2, MaxInt);
   Memo1.SelStart := testcaretpos;
   Memo1.SetFocus;
end;






More information about the Lazarus mailing list