VCL控件的调用问题(50分)

  • 主题发起人 主题发起人 zhangheaaa
  • 开始时间 开始时间
Z

zhangheaaa

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure form1.cmboBoxMonthChange(Sender: TObject);
begin
{改变月份}
Calendar.Month := (Sender as TComboBox).ItemIndex + 1;
end;
请问在以上程序中,为什么不直接使用combobox控件,
即:Calendar.Month := cmboboxmonth.ItemIndex + 1;
而要使用(sender as tcombobox).itemindex
 
它是假认Sender是一个TComboBox类(或其子类)的对象,但然,如果不是的话就会报错。
这样做有个好处:能让多个TComboBox对象共用这段代码。
如果写成
Calendar.Month := cmboboxmonth.ItemIndex + 1;
那么就只有cmBoBoxMonth的操作了,不能共享。
在程序中如果有多个对象有相似的操作就可以这样来实现。^_^
 
其实这是一个组件继承的问题,这样做可以在unit单元中使用,而不一定要在form窗体上
使用,以后你就可以在别的地方更好的调用它了
 
多人接受答案了。
 
后退
顶部