aNode := Items.AddChildObject(Node, DisplayList.Strings[I],
pointer(strtoint(ChildList.Strings[I])));现在,我如何才能将值从Data中取出来呢? 原来是用的一个结构指针。
pointer(strtoint(ChildList.Strings[I])));现在,我如何才能将值从Data中取出来呢? 原来是用的一个结构指针。
解决方案 »
- 请教如何解决flash透明背景时文字和图形的锯齿问题
- delphi中关于form的释放
- 祝父亲生日快乐
- DBChart.series动态删除TLineSeries变量,在线等。。。。。
- 求教ADOQuery的Filter的用法
- 怎样在问win98下对kernel中的loadlibrary 进行apihook
- 怎样获得Windows系统自身的关机对话框?
- 在一个独立的unit怎么去使用另外的unit的控件?
- 如何在程序中自动获取 本机的机器名和ip地址
- 请问有没有计时的控件?
- xpmenu怎么安装?(只有这么点分了)
- 用DELPHI写的一个DLL,用DELPHI写的程序调用,可以有返回值,可用CB++确不能得到返回结果.
unit uNavigation;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ActnList, StdCtrls, ExtCtrls, db, dbClient;
type
pUser = ^User;
User = record
SID: string;
sName: string;
end;
type
TfrmNavigation = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TreeView1: TTreeView;
TreeView2: TTreeView;
Splitter1: TSplitter;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
procedure TreeView2Deletion(Sender: TObject; Node: TTreeNode);
procedure TreeView1Deletion(Sender: TObject; Node: TTreeNode);
procedure FormShow(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
private
curDepartmentNode: TTreeNode;
curUserNode: TTreeNode;
{ Private declarations }
procedure GetEmployee(Node: TTreeNode);
public
{ Public declarations }
function addNode(sid, sName: string): boolean;
function getDepartment(var id, name: string): boolean;
end;var
frmNavigation: TfrmNavigation;implementationuses uMainForm, uMyPublic, uPublicDataModule;{$R *.dfm}function TfrmNavigation.addNode(sid, sName: string): boolean;
var
data: PUser;
node: ttreenode;
begin result := false;
new(data);
data.SID := SID;
data.sName := sName;
node := treeview2.Items.AddChild(nil, sName);
node.Data := Data;
node.ImageIndex := 2;
node.SelectedIndex := 3;
result := true;
end;procedure TfrmNavigation.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanClose := False;
end;procedure TfrmNavigation.FormCreate(Sender: TObject);
begin
treeview1.Color := rgb(157, 185, 235);
TreeView1.OnChange := nil;
BuildTree(treeview1, dmpublic.cdsDepartment, 0, 1);
end;procedure TfrmNavigation.GetEmployee(Node: TTreeNode);
const
strSQL = 'SELECT SID,eName FROM employeetbl where did=''%s''';
var
db: TClientDataSet;
did: string;
begin
application.Hint := '正在获得当前部门的人员列表'; did := PDepartMent(Node.Data)^.ID;
db := TClientDataSet.Create(self);
db.RemoteServer := dmPublic.Connection;
db.ProviderName := 'DataSetProvider';
db.CommandText := Format(strSQL, [did]);
db.Active := true;
treeview2.Items.Clear;
treeview2.Items.BeginUpdate;
while not db.Eof do
begin
addNode(trim(db['sid']), trim(db['eName']));
db.Next;
end;
application.Hint := '完毕';
//application.
treeview2.Items.EndUpdate;
freeandnil(db);
curUserNode := Treeview2.Items.GetFirstNode;
end;procedure TfrmNavigation.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
// if node <> nil then
end;procedure TfrmNavigation.TreeView2Deletion(Sender: TObject;
Node: TTreeNode);
begin
// if node <> nil then
// Dispose(pUser(Node.Data));
end;procedure TfrmNavigation.TreeView1Deletion(Sender: TObject;
Node: TTreeNode);
begin
// if node <> nil then
// Dispose(PDepartMent(Node.Data));
end;procedure TfrmNavigation.FormShow(Sender: TObject);
begin
//在这里应判断用户将来有权限的部门的第一个节点
curDepartmentNode := Treeview1.Items.GetFirstNode;
if curDepartmentNode <> nil then
GetEmployee(curDepartmentNode);
// showmessage(curnode.Text );
// TreeView1.OnChange := TreeView1Change;
end;procedure TfrmNavigation.TreeView1Click(Sender: TObject);
var
node: TTreeNode;
begin
Node := Treeview1.Selected;
if node = nil then exit;
curDepartmentNode := node;
GetEmployee(node);
end;function TfrmNavigation.getDepartment(var id, name: string): boolean;
begin
result := false;
if curDepartmentNode = nil then exit
else
begin
id := PDepartMent(curDepartmentNode.Data)^.ID;
name := curDepartmentNode.Text;
result := true;
end;end;end.
n : integer;
begin n := Integer(aNode.Data); //n 就是你需要的值end;
procedure FillData(Item: TListItem; AData: Integer);var
I: PInteger;
begin
New(I);
I^ := AData;
Item.Data := I;
end;
读
var
item: TTreeNode;
i: integer;
begin
i:=Integer(Item.data)^;
end;