请问如何得到TStringList.Strings[0]的地址?(50分)

  • 主题发起人 主题发起人 小花生
  • 开始时间 开始时间

小花生

Unregistered / Unconfirmed
GUEST, unregistred user!
我的测试:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
tsl : TStringList;
p : pointer;
begin
tsl := TStringList.Create
tsl.Insert(0,'abc');
p := @tsl.Strings [0]
//有问题。
end;
 
好象DELPHI里不是用@来传递地址指针的吧?
你试试:
p := pchar(tsl.Strings [0]);
 
var
lst: TStringList;
p: Pointer;

begin
lst := tstringlist.create;
p := @(pstringItem(integer(lst)+TStrings.InstanceSize)^.FString);
end;
 
要这个地址干什么
Stings是个数组属性,没有真实地址

-----
http://www.8421.org
 
你是不是想用Move类的函数??
 
我认为是类型错了:

var
tsl : TStringList;
p : string
//应该是string吧
begin
tsl := TStringList.Create
tsl.Insert(0,'abc');
p := @tsl.Strings [0]

end;
 
请斑竹取消这个问题吧
 
@ 或Addr好象可以得到地址
 
后退
顶部