您好,请教关于AsSigned函数,如何用它判空 ?(20分)

  • 主题发起人 主题发起人 wjlsmail
  • 开始时间 开始时间
W

wjlsmail

Unregistered / Unconfirmed
GUEST, unregistred user!
您好,
procedure TForm1.Button4Click(Sender: TObject);
var
s : String ;
begin
s := '' ;
ShowMessage(Pchar(s)) ; //显示为空
if not assigned(Pchar(s)) then ShowMessage('kong')

不会ShowMessage('kong') ;

AsSigned函数的参数是指针对吗? 用Pchar(s)取其指针对吗? (字符串的指针应该用Integer(s)得到,但一般
在用到字符串的指针时都用Pchar()类型转换) 如何用AsSigned判断空? 这个函数的作用是什么?

谢谢
 
pchar还有个结束符吧
 
var P: Pointer;
Assigned 判断指正是否为空
begin
P := nil;
if Assigned (P) then Writeln ('You won''t see this');
GetMem(P, 1024); {P valid}
FreeMem(P, 1024); {P no longer valid and still not nil}
if Assigned (P) then Writeln ('You''ll see this');
end;
 
要注意数据类型,一般对对象(事实上也是指针)或指针类型

procedure TForm1.Button1Click(Sender: TObject);
var
s :pchar;
begin
s :=nil;
if not assigned(s) then ShowMessage('kong');
s:=pchar('aaa');
if not assigned(s) then ShowMessage('AAA kong')
end;
 


如果p=nil then assigned(P)返回 false

not assigned(Pchar(s)) 返回false 应该不会不会ShowMessage('kong')
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
559
swish
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部