存:
var
A: ^string;
i: integer;
strXH: string;
begin
data.close;
data.commandtext := Sql;
data.open;
for i := 0 to data.recordcount-1 do
begin
strxh := data.fieldbyname('field').asstring;
A := @strXH;
Treeview.items.Add(nil,strxh);
Treeview.items.item[i].data := @A;
data.next;
End;
End;取:
var
A: ^string;
str: string;
begin
A := TV_resultList.Items.Item[TV_resultList.Selected.Index].Data;
str := A^;
showmessage(str);
end;取不出来。什么问题?
先谢了1
var
A: ^string;
i: integer;
strXH: string;
begin
data.close;
data.commandtext := Sql;
data.open;
for i := 0 to data.recordcount-1 do
begin
strxh := data.fieldbyname('field').asstring;
A := @strXH;
Treeview.items.Add(nil,strxh);
Treeview.items.item[i].data := @A;
data.next;
End;
End;取:
var
A: ^string;
str: string;
begin
A := TV_resultList.Items.Item[TV_resultList.Selected.Index].Data;
str := A^;
showmessage(str);
end;取不出来。什么问题?
先谢了1
解决方案 »
- 开发WebService 时,客户端调用出现错误
- 请问关于cxCombobox控件输入中文乱码的问题
- fastrport中的frreport是生成*.frf文件保存在硬盘上好呢还是编译进exe文件好?
- delphi2010结构体泛型list如何在传地址过程中正确的被list添加
- 谁知道Ctrl+Space的ASCII吗是什么?
- 请问:win98对等网能不能运行三层结构的程序?
- delphi7的报表怎么做啊??
- 一个难题,先给100分,要多加分教我怎么加
- 如何把自己的个人计算机做成ftp服务器,使得其他远程个人计算机将数据发送到我的机器上。
- 一个Calendar问题
- 文件型数据库开发的问题(dbf)
- 如何获得一个数组的长度
Treeview.items.item[i].data := @A;==>>Treeview.items.item[i].data := A;
A := TV_resultList.Items.Item[TV_resultList.Selected.Index].Data;
str := A^;
showmessage(str);
showmessage();为空。什么原因?
var
str: string;
begin
Str := 'ccc';
TreeView1.Items.AddChild(nil, 'aaa');
TreeView1.Items.Item[0].Data := Pointer(str);
end;procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
ShowMessage(pchar(Node.Data));
end;
begin
strxh := data.fieldbyname('field').asstring;
A := @strXH;
....
data.next;
End;
按以上的写法:当进入下一次循环时,strxh 被重新赋值,由于String是生存期自管理类型,所以系统给strxh重新分配内存,而原先所占的内存被自动回收;所以上次循环时得到的A 即“@strXH”此时已五任何意义!