on := TimeToStr(Now);Р#0007 end;Р有新的东西喔!程序要参考某一组件的属性值,其语法格式是Р组件参考.属性РTfrmMyClock.tmrClockTimer事件处理程序就用这样的语法取得chkbxShowDate.Checked的属性值以得知用户希望、不希望看到日期。设计时间改变组件属性值的方法是透过Object Inspector,运行时间时则是采用:Р组件参考.属性:= 新值或表达式;Р的指定叙述来改变组件的属性值。上述程序0004这列的Now函数会传回当时的系统日期与时间,DateTimeToStr则是将其转换成lblTime.Caption接受的文字型态数据。这些是是Inprise的工程师们预先写好放在SysUtils.pas程序单元(unit)的函数,我们直接以uses句子参照单元即可使用。Р以uses参照其他单元的内容在Object Pascal是个重要的观念,关于这些目前我们暂时无需耽心,IDE己经帮我们写好这些单元参照了,如果你够细心(或者运气够好正好看到的话),会注意到单元开头uses句子中的ExtCtrls本来并没有,那是在加进了TTimer之后才自动加进去的。有关程序单元的结构以及更多有关Object Pascal的知识,留待稍候的第二、三两章再陆续加以说明。Р可视化/非可视化组件Р组件可分为可视化(ponent)与非可视化(Non-ponent)两类,差别在于运行时间视觉上能不能看得到而定。请注意我的措词,因为有些组件会有Visible这种布尔(Boolean)型态的属性,设为False时同样也是看不到的。所以,所谓非可视化的组件指的是那些一定不能在运行时间看到的组件。Р虽然看不到,但这些非可视化组件组件是确实存在并且有作用的,例如本例的TTimer组件,虽然在图1-4看不到,却是主导「我的小时钟」时间显示的重要成员。