下面代码可以编译可以通过并能执行
procedure TForm1.Button1Click(Sender: TObject);
var
Flist : Tlist;
p,q : pchar;
s : string;
begin
Flist := Tlist.Create;
s := 'abc';
p := pchar(s);
Flist.Add(p);
q := Flist[0];
showmessage(q);
flist.Free;
end;
下面却不能编译通过
procedure TForm1.Button1Click(Sender: TObject);
var
Flist : Tlist;
p,q : pchar;
s : string;
begin
Flist := Tlist.Create;
s := 'abc';
p := pchar(s);
Flist.Add(p);
// q := Flist[0];
showmessage(Flist[0]);
flist.Free;
end;
错误是Incompatible types: 'String' and 'Pointer' 请高手指点一下。多谢。
procedure TForm1.Button1Click(Sender: TObject);
var
Flist : Tlist;
p,q : pchar;
s : string;
begin
Flist := Tlist.Create;
s := 'abc';
p := pchar(s);
Flist.Add(p);
q := Flist[0];
showmessage(q);
flist.Free;
end;
下面却不能编译通过
procedure TForm1.Button1Click(Sender: TObject);
var
Flist : Tlist;
p,q : pchar;
s : string;
begin
Flist := Tlist.Create;
s := 'abc';
p := pchar(s);
Flist.Add(p);
// q := Flist[0];
showmessage(Flist[0]);
flist.Free;
end;
错误是Incompatible types: 'String' and 'Pointer' 请高手指点一下。多谢。
解决方案 »
- Delphi XE 编译EXE路径
- 特殊样式的文本内容(.txt)怎么生成
- EAN13 条形码问题?大虾们!不买,也来瞧瞧!
- 请恕小弟是初学者,在delphi中inherited Create(AOwner); 的具体含义是什么呢?
- 有关ADOQuery的Field的Editmask和DisplayFormat的设置!请高手不吝赐教!谢谢!
- 关于Tnmftp list的问题
- 哪位使用过“csdn论坛助手”这个软件,我下载一个试了试,好像没有什么反映,哪位给点建议
- 怎样使用计算机实现自动推箱子功能?怎样得到最优解?
- 已有一张paradox表,如何新建一张和它表结构一样的新表?
- 征求控件命名方法
- 进程隐藏
- 三层数据库 中文搜索不显示
所以使用Flist[0]的时候得做次转换 , 你前边没错,是因为已经做过一次转换了, p := pchar(s);
showmessage(pchar(Flist[0]));
这个类是用来存放指针的,你可以把它当成指针数组来使用。指针是4个字节的整数。与要显示的字符串类型不符,因此showmessage无法显示。
指针用错了pchar(S) 这个转换,新版本的DELPHI不知道,老版的话,S没有增加引用次数,这样玩下去会出问题的.
Flist : Tlist;
s : string;
begin
Flist := Tlist.Create;
s:='abc';
Flist.Add(Pointer(Integer(s)));
showmessage(string(Flist[0]));
flist.Free;
end;