procedure Tjhglmain.TreeView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var HT:THitTests; node:TTreenode; begin with sender as Ttreeview do begin HT:=gethittestinfoat(x,y); if (htonitem in ht) then begin node:=getnodeat(x,y); if Button=mbRight then begin showmessage(node.Text); showmessage(string(node.Data^)); end; end; end; 用楼上指针作了,看我这段代码,我每次右键点击都能得到不同的node.text,但node.data^ 都一样,都是最后赋值得结果,why??? while not adoquery1.Eof do begin tmpjhlxjm:=adoquery1.Fieldbyname('计划类型简码').Value; Psxmbh^:=tmpjhlxjm; tmptreenode:=treeview1.Items.AddObject(nil,tmpjhlx,psxmbh); adoquery1.Next; end;
templist:TStringList;begin
templist:=TStringList.Create;
templist.values['相应的编号']:='对应的值'
end;
var
ps:^string;
begin
new(ps); //用完之后要Free,在此只是举例
ps^:='Attached';
TreeView1.Items.AddObject(nil,'Text',ps);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage(string(TreeView1.Selected.Data^));
end;
Tdept= RECORD
deptcode:string;
dept_int:integer;
end ;Fdeptinfo:array of Tdept;
property deptinfo[Index :integer]:Tdept Read GetDeptInfo; 在创建的时候
Fdeptinfo[i].deptcode:='';
Fdeptinfo[i].dept_int:=i;
Node.Data := Pointer(deptinfo[i].dept_int);
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
HT:THitTests;
node:TTreenode;
begin
with sender as Ttreeview do
begin
HT:=gethittestinfoat(x,y);
if (htonitem in ht) then
begin
node:=getnodeat(x,y);
if Button=mbRight then
begin
showmessage(node.Text);
showmessage(string(node.Data^));
end;
end;
end;
用楼上指针作了,看我这段代码,我每次右键点击都能得到不同的node.text,但node.data^
都一样,都是最后赋值得结果,why???
while not adoquery1.Eof do
begin
tmpjhlxjm:=adoquery1.Fieldbyname('计划类型简码').Value;
Psxmbh^:=tmpjhlxjm;
tmptreenode:=treeview1.Items.AddObject(nil,tmpjhlx,psxmbh);
adoquery1.Next;
end;