unitselecttextform.pas
来自「串口短信猫收发软件。支持西门子TC35i设备」· PAS 代码 · 共 121 行
PAS
121 行
unit UnitSelectTextForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, RzEdit,
Dialogs, RzButton, ComCtrls, RzTreeVw;
type
TSelectTextForm = class(TForm)
RzTreeView1: TRzTreeView;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDeactivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RzTreeView1DblClick(Sender: TObject);
private
FRzMemo: TRzMemo;
FTSTextGroup, FTSText: TStringList;
procedure ShowTree;
public
constructor Create(AOwner: TComponent; var RzMemo: TRzMemo);
end;
implementation
uses UnitDM;
{$R *.dfm}
procedure TSelectTextForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=27 then Close;
end;
procedure TSelectTextForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
while FTSTextGroup.Count>0 do
begin
TStrings(FTSTextGroup.Objects[FTSTextGroup.Count-1]).Free;
FTSTextGroup.Delete(FTSTextGroup.Count-1);
end;
FTSTextGroup.Free;
while FTSText.Count>0 do
begin
TStrings(FTSText.Objects[FTSText.Count-1]).Free;
FTSText.Delete(FTSText.Count-1);
end;
FTSText.Free;
Action := caFree;
end;
procedure TSelectTextForm.FormDeactivate(Sender: TObject);
begin
Close;
end;
constructor TSelectTextForm.Create(AOwner: TComponent; var RzMemo: TRzMemo);
begin
FRzMemo := RzMemo;
inherited Create(AOwner);
end;
procedure TSelectTextForm.FormCreate(Sender: TObject);
begin
FTSTextGroup := TStringList.Create;
FTSText := TStringList.Create;
if (not DM.SelectTextGroup(FTSTextGroup))
or(not DM.SelectText(FTSText)) then
begin
Application.MessageBox('查询常用短语数据失败!', '错误', MB_OK + MB_ICONERROR);
Close;
end;
ShowTree;
end;
procedure TSelectTextForm.ShowTree;
var
i, j: integer;
TreeNode: TTreeNode;
begin
RzTreeView1.Items.Clear;
//一级节点
for i:=0 to FTSTextGroup.Count-1 do
begin
TreeNode := RzTreeView1.Items.AddObject(nil, Trim(FTSTextGroup.Strings[i]), FTSTextGroup.Objects[i]);
//二级节点
for j:=0 to FTSText.Count-1 do
begin
if TStrings(FTSTextGroup.Objects[i]).Strings[0]=TStrings(FTSText.Objects[j]).Strings[1] then
begin
RzTreeView1.Items.AddChildObject(TreeNode, Trim(FTSText.Strings[j]), FTSText.Objects[j]);
end;
end;
end;
RzTreeView1.FullCollapse;
end;
procedure TSelectTextForm.RzTreeView1DblClick(Sender: TObject);
var
i: integer;
TreeNode: TTreeNode;
begin
//选中返回
TreeNode := RzTreeView1.Selected;
if not TreeNode.HasChildren then//无子节点
begin
if TStrings(TreeNode.Data).Count>=2 then
FRzMemo.Lines.Text := Trim(TStrings(TreeNode.Data).Strings[2]);
Close;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?