📄 frmmainunit.pas
字号:
unit frmMainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons,
TreeUtils, ActnList, ExtCtrls, ImgList, Menus;
type
TfrmMain = class(TForm)
TreeView1: TTreeView;
StatusBar1: TStatusBar;
ActionList1: TActionList;
acAdd: TAction;
acAddChild: TAction;
Panel1: TPanel;
ImageList1: TImageList;
Panel2: TPanel;
btnDelete: TButton;
btnAddChild: TBitBtn;
btnAdd: TBitBtn;
edtCaption: TEdit;
Label2: TLabel;
Panel3: TPanel;
acDelete: TAction;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
lblNodeCaption: TLabel;
lblNodeIndex: TLabel;
lblParentCaption: TLabel;
lblParentIndex: TLabel;
Bevel1: TBevel;
Splitter1: TSplitter;
acEdit: TAction;
N4: TMenuItem;
N5: TMenuItem;
procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
procedure FormCreate(Sender: TObject);
procedure acAddExecute(Sender: TObject);
procedure acAddChildExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure acDeleteExecute(Sender: TObject);
procedure TreeView1Edited(Sender: TObject; Node: TTreeNode;
var S: string);
procedure acEditExecute(Sender: TObject);
procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
TreeUtil: TTreeUtils;
end;
var
frmMain: TfrmMain;
implementation
uses DMUnit, TreeFillThrd;
{$R *.dfm}
procedure TfrmMain.TreeView1Change(Sender: TObject; Node: TTreeNode);
var Nod: TNodeData;
// S: string;
begin
// S := 'AbsIndex:[' + IntToStr(TreeView1.Selected.AbsoluteIndex);
// S := S + '] Text:[' + TreeView1.Selected.Text;
// S := S + '] Index:[' + IntToStr(TreeUtil.getSelNodeIndex);
// S := S + '] Caption:[' + TreeUtil.getSelNodeCaption + ']';
// S := S + '] Caption:[' + PNodeData(TreeView1.Selected.Data)^.Caption;
// StatusBar1.Panels.Items[0].Text := S;
lblNodeCaption.Caption := TreeUtil.getSelNodeCaption;
lblNodeIndex.Caption := IntToStr(TreeUtil.getSelNodeIndex);
Nod := TreeUtil.getTreeNodeData(TreeView1.Selected.Parent);
lblParentCaption.Caption := Nod.Caption;
lblParentIndex.Caption := IntToStr(Nod.Index);
end;
procedure TfrmMain.acEditExecute(Sender: TObject);
begin
TreeView1.Selected.EditText;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
TreeUtil := TTreeUtils.Create(TreeView1, DM.Conn, 'Dir');
TreeUtil.FillTree;
end;
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
TreeUtil.Free;
end;
procedure TfrmMain.acAddExecute(Sender: TObject);
begin
TreeUtil.AddNode(edtCaption.Text);
end;
procedure TfrmMain.acAddChildExecute(Sender: TObject);
begin
TreeUtil.AddChildNode(edtCaption.Text);
end;
procedure TfrmMain.acDeleteExecute(Sender: TObject);
begin
if MessageBox(handle, PChar('你确认要删除"' + TreeView1.Selected.Text + '"吗?'),
'提示', MB_ICONQUESTION + MB_YESNO) = IDYES then
TreeUtil.DeleteTree(TreeView1.Selected);
end;
procedure TfrmMain.TreeView1Edited(Sender: TObject; Node: TTreeNode;
var S: string);
begin
//修改Node的文本
TreeUtil.ModifyNodeCaption(S, Node)
end;
procedure TfrmMain.TreeView1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
if Source = TreeView1 then Accept := True
else Accept := False;
end;
procedure TfrmMain.TreeView1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var TargetNode, SourceNode: TTreeNode;
begin
TargetNode := TreeView1.DropTarget;
SourceNode := TreeView1.Selected;
if MessageBox(handle, '您确认要异动目录吗?', '提示', MB_ICONQUESTION
+ MB_YESNO) = IDYES then
if TreeUtil.ModifyNodePID(PNodeData(TargetNode.Data)^.Index, SourceNode) then
TreeUtil.FillTree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -