📄 unitselecttelform.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 + -