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 + -
显示快捷键?