mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-10 20:03:10 +02:00
69 lines
1.3 KiB
ObjectPascal
69 lines
1.3 KiB
ObjectPascal
unit Main;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, LCLType, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
|
CharacterMapFrm;
|
|
|
|
type
|
|
|
|
{ TMainForm }
|
|
|
|
TMainForm = class(TForm)
|
|
Button1: TButton;
|
|
Memo1: TMemo;
|
|
procedure Button1Click(Sender: TObject);
|
|
private
|
|
procedure CharacterMapHelpHandler(Sender: TObject);
|
|
procedure InsertCharacterHandler(const C: TUTF8Char);
|
|
|
|
public
|
|
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TMainForm }
|
|
|
|
procedure TMainForm.Button1Click(Sender: TObject);
|
|
begin
|
|
if CharacterMapForm = nil then
|
|
begin
|
|
CharacterMapForm := TCharacterMapForm.Create(Application);
|
|
CharacterMapForm.OnInsertCharacter := @InsertCharacterHandler;
|
|
CharacterMapForm.OnShowHelp := @CharacterMapHelpHandler;
|
|
end;
|
|
CharacterMapForm.Show;
|
|
end;
|
|
|
|
procedure TMainForm.CharacterMapHelpHandler(Sender: TObject);
|
|
begin
|
|
ShowMessage('Clicking on a character cell inserts the associated character into the editor text.');
|
|
end;
|
|
|
|
procedure TMainForm.InsertCharacterHandler(const C: TUTF8Char);
|
|
var
|
|
txt: String;
|
|
p: Integer;
|
|
begin
|
|
p := Memo1.SelStart;
|
|
txt := Memo1.Lines.Text;
|
|
if Memo1.SelLength > 0 then
|
|
Delete(txt, p+1, Memo1.SelLength);
|
|
Insert(C, txt, p+1);
|
|
Memo1.Lines.Text := txt;
|
|
Memo1.SelStart := p + Length(C);
|
|
Memo1.SelLength := 0;
|
|
end;
|
|
|
|
end.
|
|
|