由于某种原因,我使用了指针传递对象procedure AddListItem(sl:Pointer);
begin
if not (TObject(sl) is TStrings) then Exit; //这句话有问题
TStrings(sl).Add('asdfasdfasdf');
end;当我调用 AddListItem(Memo1.Lines);
是总是执行不到
TStrings(sl).Add('asdfasdfasdf');
怎么才能判断呢?
TObject(sl).ClassName = 'TMemoStrings';
begin
if not (TObject(sl) is TStrings) then Exit; //这句话有问题
TStrings(sl).Add('asdfasdfasdf');
end;当我调用 AddListItem(Memo1.Lines);
是总是执行不到
TStrings(sl).Add('asdfasdfasdf');
怎么才能判断呢?
TObject(sl).ClassName = 'TMemoStrings';
var
ClassRef: TClass;
begin
Result:= False;
ClassRef:= TObject(p).ClassType;
while ClassRef.ClassParent <> nil do begin
MessageBox(0,PChar(string(ClassRef.ClassParent.ClassName)),nil,0);
if ClassRef.ClassParent.ClassName = c.ClassName then begin
Result:= True;
Exit;
end;
ClassRef:= ClassRef.ClassParent;
end;
end;