⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitselecttelform.pas

📁 串口短信猫收发软件。支持西门子TC35i设备
💻 PAS
字号:
unit UnitSelectTelForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, RzEdit,
  Dialogs, RzButton, ComCtrls, RzTreeVw;

type
  TSelectTelForm = 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;
    FTSAddrGroup, FTSAddr: TStringList;
    procedure ShowTree;
  public
    constructor Create(AOwner: TComponent; var RzMemo: TRzMemo);
  end;

implementation

uses UnitDM;

{$R *.dfm}

procedure TSelectTelForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=27 then Close;
end;

procedure TSelectTelForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  while FTSAddrGroup.Count>0 do
  begin
    TStrings(FTSAddrGroup.Objects[FTSAddrGroup.Count-1]).Free;
    FTSAddrGroup.Delete(FTSAddrGroup.Count-1);
  end;
  FTSAddrGroup.Free;

  while FTSAddr.Count>0 do
  begin
    TStrings(FTSAddr.Objects[FTSAddr.Count-1]).Free;
    FTSAddr.Delete(FTSAddr.Count-1);    
  end;
  FTSAddr.Free;

  Action := caFree;
end;

procedure TSelectTelForm.FormDeactivate(Sender: TObject);
begin
  Close;
end;

constructor TSelectTelForm.Create(AOwner: TComponent; var RzMemo: TRzMemo);
begin
  FRzMemo := RzMemo;
  inherited Create(AOwner);  
end;

procedure TSelectTelForm.FormCreate(Sender: TObject);
begin
  FTSAddrGroup := TStringList.Create;
  FTSAddr := TStringList.Create;
  if (not DM.SelectAddrGroup(FTSAddrGroup))
   or(not DM.SelectAddr(FTSAddr)) then
  begin
    Application.MessageBox('查询通讯簿数据失败!', '错误', MB_OK + MB_ICONERROR);
    Close;
  end;
  ShowTree;
end;

procedure TSelectTelForm.ShowTree;
var
  i, j: integer;
  TreeNode: TTreeNode;
begin
  RzTreeView1.Items.Clear;
  //一级节点
  for i:=0 to FTSAddrGroup.Count-1 do
  begin
    TreeNode := RzTreeView1.Items.AddObject(nil, Trim(FTSAddrGroup.Strings[i]), FTSAddrGroup.Objects[i]);
    //二级节点
    for j:=0 to FTSAddr.Count-1 do
    begin
      if TStrings(FTSAddrGroup.Objects[i]).Strings[0]=TStrings(FTSAddr.Objects[j]).Strings[1] then
      begin
        RzTreeView1.Items.AddChildObject(TreeNode, Trim(FTSAddr.Strings[j]), FTSAddr.Objects[j]);
      end;
    end;
  end;

  RzTreeView1.FullCollapse;
end;

procedure TSelectTelForm.RzTreeView1DblClick(Sender: TObject);
var
  i: integer;
  TreeNode: TTreeNode;
begin
//选中返回
  TreeNode := RzTreeView1.Selected;
  if TreeNode.HasChildren then//有子节点
  begin
    for i:=0 to FTSAddr.Count-1 do
    begin
      if TStrings(FTSAddr.Objects[i]).Strings[1]=TStrings(TreeNode.Data).Strings[0] then
      begin
        if FRzMemo.Lines.IndexOf(TStrings(FTSAddr.Objects[i]).Strings[3])<0 then
          FRzMemo.Lines.Add(Trim(TStrings(FTSAddr.Objects[i]).Strings[3]));
      end;
    end;
  end
  else//无子节点
  begin
    if TStrings(TreeNode.Data).Count>=3 then
      if FRzMemo.Lines.IndexOf(TStrings(TreeNode.Data).Strings[3])<0 then
        FRzMemo.Lines.Add(Trim(TStrings(TreeNode.Data).Strings[3]));
  end;
  Close;  
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -