From 868daf94f29ce1ffdd799a68c07bb668cd373bcd Mon Sep 17 00:00:00 2001
From: HP\李良庭 <liliangting@lanpucloud.cn:1111>
Date: 星期二, 08 七月 2025 11:49:03 +0800
Subject: [PATCH] 提交分辨率自适应版本V3.1.0.1500

---
 demo/TabletPC/Unit1.~pas |  124 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 124 insertions(+), 0 deletions(-)

diff --git a/demo/TabletPC/Unit1.~pas b/demo/TabletPC/Unit1.~pas
new file mode 100644
index 0000000..9d1f01e
--- /dev/null
+++ b/demo/TabletPC/Unit1.~pas
@@ -0,0 +1,124 @@
+unit Unit1;
+
+interface
+
+uses
+  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+  Dialogs, OleServer, MSINKAUTLib_TLB, ExtCtrls, StdCtrls;
+
+type
+  TForm1 = class(TForm)
+    InkCLT: TInkCollector;
+    InkRC: TInkRecognizerContext;
+    Panel1: TPanel;
+    Button1: TButton;
+    edtName: TEdit;
+    Button2: TButton;
+    Button3: TButton;
+    Button4: TButton;
+    Edit1: TEdit;
+    procedure FormCreate(Sender: TObject);
+    procedure InkCLTStroke(ASender: TObject; const Cursor: IInkCursor;
+      const Stroke: IInkStrokeDisp; var Cancel: WordBool);
+    procedure Button1Click(Sender: TObject);
+    procedure Button2Click(Sender: TObject);
+    procedure Button3Click(Sender: TObject);
+    procedure Button4Click(Sender: TObject);
+  private
+    { Private declarations }
+    procedure InitializeInkCollector;
+    function  DeleteStr(str :WideString):WideString;
+  public
+    { Public declarations }
+  end;
+
+var
+  Form1: TForm1;
+
+implementation
+
+{$R *.dfm}
+
+//------- 自定义函数 ------------------------------
+//初始化InkCLT
+procedure TForm1.InitializeInkCollector;
+begin
+  InkCLT.hWnd := panel1.Handle;
+  InkCLT.Enabled := true;
+  InkCLT.DefaultDrawingAttributes.Color := clRed; // 墨水颜色
+  InkCLT.DefaultDrawingAttributes.Width := 200; // 笔的宽度
+end;
+
+function TForm1.DeleteStr(str :WideString):WideString;
+var
+  LengthOfText: Integer;
+begin
+  LengthOfText := Length(str);
+  if LengthOfText > 0 then
+  begin
+    // 删除最后一个字符
+    Delete(str, LengthOfText, 1);
+  end;
+  Result := str;
+end;
+//-------------------------------------------------
+
+procedure TForm1.FormCreate(Sender: TObject);
+begin
+  InitializeInkCollector;
+end;
+
+procedure TForm1.InkCLTStroke(ASender: TObject; const Cursor: IInkCursor;
+  const Stroke: IInkStrokeDisp; var Cancel: WordBool);
+//var
+//  ActiveCtrl: TWinControl;
+begin
+  //返回当前拥有焦点的控件
+  //ActiveCtrl := Screen.ActiveControl;
+  //if ActiveCtrl is TEdit then
+  //  TEdit(ActiveCtrl).Text := TEdit(ActiveCtrl).Text + Stroke.Ink.Strokes.ToString
+  //else if ActiveCtrl is TMemo then
+  //  TMemo(ActiveCtrl).Lines.Add(Stroke.Ink.Strokes.ToString);
+    Edit1.Text := Stroke.Ink.Strokes.ToString;
+  //else
+  //  ShowMessage('提示:当前焦点不在编辑框或多行编辑框上.');
+end;
+
+//清空手写区
+procedure TForm1.Button1Click(Sender: TObject);
+begin
+  InkCLT.Ink.DeleteStrokes(InkCLT.Ink.Strokes);
+  Edit1.Clear;
+  Panel1.Refresh;
+end;
+
+//删除一个字,要统计每个字有多少壁画,Ink只能追踪笔画,按笔画来删除!!!
+procedure TForm1.Button2Click(Sender: TObject);
+var
+  Strokes: IInkStrokes;
+  LastStroke: IInkStrokeDisp;
+begin
+  //Edit1.Text := DeleteStr(Edit1.Text);
+
+  if InkCLT.Ink.Strokes.Count > 0 then
+  begin
+    Strokes := InkCLT.Ink.Strokes;
+    LastStroke := Strokes.Item(Strokes.Count - 1) as IInkStrokeDisp;
+    InkCLT.Ink.DeleteStroke(LastStroke);
+  end;
+end;
+
+//确认备选字
+procedure TForm1.Button3Click(Sender: TObject);
+begin
+  edtName.Text := edtName.Text + Trim(Edit1.Text);
+  Button1Click(Sender);
+end;
+
+//删除Edit1的一个字
+procedure TForm1.Button4Click(Sender: TObject);
+begin
+  edtName.Text := DeleteStr(edtName.Text);
+end;
+
+end.

--
Gitblit v1.9.3