我在TList對象中記錄了兩种類型的數据,分別為:TLabel,Timage
并用MyList.items[i]返回一個數据。為了判斷MyList.items[i]返回值的數据類型,我使用了以下語句:
var tcp: String;begin
if (MyList.items[i] is TLabel) then tcp:=(MyList.items[i] as TLabel).caption;
end;結果編譯時出現 Operator not applicable to this operand type錯誤,請問為什么, 應該如何判斷當前MyList.items[i]返回值的數据類型是什么?
并用MyList.items[i]返回一個數据。為了判斷MyList.items[i]返回值的數据類型,我使用了以下語句:
var tcp: String;begin
if (MyList.items[i] is TLabel) then tcp:=(MyList.items[i] as TLabel).caption;
end;結果編譯時出現 Operator not applicable to this operand type錯誤,請問為什么, 應該如何判斷當前MyList.items[i]返回值的數据類型是什么?
解决方案 »
- 谁有vtxtauto.tlb,请发一个。
- POS 客户显示屏上显示价格 只能在 原有显示后面加数据上去 怎样清屏 和 走马灯效果呢?
- 第一次在linux上上网并在csdn冲浪,好开心哦!
- 有关FastReport的两个问题
- 怎么调用Enumprinters windowsAPI函数?
- 如何使同级菜单的Checked属性互斥?
- StringGrid的问题
- DataSetProvider共享问题
- 計算字段怎麼用?????急盼回復,項目的最後一個障碍,問了2天了.
- Win2000的内存问题:内存128M,PIII766为什么只用了30多M就用虚拟内存了,光报告说虚拟内存太小,机器速度奇慢
- 各位高手:如何通过程序删除IE的自动完成内容
- 怎么得知自己的机器上的光驱盘符?
声明:
本人保证所提供的方法是所知的最好方法
解答问题纯属公益性质
所以请不要向我追问
如果有时间自会关注后续问题
分析:
is、as运算处理的是对象类型(TObject)
TList存储的是指针类型
对象其实就是一个实例指针
所以把TList存储的元素强制转换成对象即可使用is,as运算
问题:如何对指针类型进行is、as运算?
设计:Zswang
日期:2002-09-30
方案:使用强制转换
附言:必须保存TList实例存储的都是实例指针
//*)///////Begin Demo
procedure TForm1.Button1Click(Sender: TObject);
var
MyList: TList; //调试
tcp: string;
I: Integer; //调试
begin
MyList := TList.Create; //调试
try //调试
MyList.Add(Image1); //调试
MyList.Add(Label1); //调试
for I := 0 to MyList.Count - 1 do
if (TObject(MyList[I]) is TLabel) then begin
tcp := (TObject(MyList[I]) as TLabel).Caption;
{ TODO -oZswang -c2002.09.29 : 使用tcp }
end;
finally //调试
MyList.Free; //调试
end; //
end;
///////End Demo