(14)我躲我闪,,可还是躲不过OOP (技术内幕12章)(66分)

  • 主题发起人 千中元
  • 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
各位,
12章有段菜单与tabcontrol相关的代码。
1)procedure TForm1.IndexPage1Click(Sender: TObject);
2)begin
3) TabControl1.TabIndex := TComponent(Sender).Tag;
4) TabControl1Change(nil);
5)end;

请看第3)行, 据说, 只有component及它的继承类才有tag属性,这里sender tmenuitem.也可以这样写tmenuitem(sender).tag.但tcomponent(sender)容错好一点。
现在问题:
1,TabControl1.TabIndex的作用?如果换成PageControl呢?要达到同样的效果,用TPageControl1.TabIndex?
2,两外两个菜单(Artist page,item page)的onclick事件
还是:
procedure TForm1.IndexPage1Click(Sender: TObject)

。。。。。。。。。。
(请注意,居然是Indexpage1click而不是artistpage1click)
怎么会这样呢?我想即使事件的处理完全一样,也应该
procedure Tform1.artistpage1click
这是怎么实现的?为什么要这样而不。。 tform1.artistpage1click?
3.请给我解释下TComponent(Sender).Tag吧,别怪我不看帮助,看过以后
没来电的感觉。。。。
 
只有component及它的继承类才有tag属性,这里sender 是tmenuitem.
也可以这样写tmenuitem(sender).tag.
但tcomponent(sender)容错好一点。

1.改变tab的当前页。
 
1.pagecontrol1.ActivePageIndex
 
1, 是不是相当于 pagecontrol 的 pages,
tabindex 是不是顺序呀?
我很少用 tabcontrol, 多用 pagecontrol

2, 名字可以自己起嘛,随便起一个,参数和你要的一样,然后
在 property inspector 里下拉框里就会有了。

3,不知道你想知道什么?
 
TComponent(sender).tag相当于
(sender as TComponent).tag,对sender进行类型转化,
把它的数据按照TComponent的方式来组织,这样如果他是
TComponent的话,就可以当TComponent用了,如果不是,
就产生一个运行时错误。
TabControl和PageControl不一样,一个是多个页,一个是
能够变化的同一个页,你在使用的时候就能注意到,一个放上组件
的时候所有的页都有这个组件,而另一个是只有当前页有这个组件
 
千-中-元,明-白-我-在-说-什-么--吗?!什么...什么......
 
a-u-t-u-m-n,我明白我不明白你的明白。。。what ..what..
还是把问题分开。
第一个不明白:
Tcompenent.tag不明白:
Stores an integer value as part of a component.
property Tag: Longint;
“as part of a component"-------怎么解释?
 
唉,千中元老兄,这66分就给我吧。
我回答这三个问题。
1。PAGECONTROL。ACITVEINDEX
2。ONCLICK只是一个对象方法指针,你肯定不是双击ONCLICK生成的,而是下拉点取
的。如果书上是这么写的,那么写书人是把他的例子源码搬了上来
3。TAG的妙用:
TAG是TCOMPONENT的属性,没有预先定义是干什么的,但它的类型是LONGINT,
在WINDOWS中,HANDLE,对象,地址,各种复杂的东西都是一个指针,指针在
WIDOWS中实质就是一个LONGINT,它随便指什么都行,DELPHI在RUNTIME时要
指向一些对象或地址,临时就用它,使用它之前,DELPHI是很好的保护现场的
,所以你在TAG中保存的东西,DELPHI一点都不破坏,至于DELPHI为什么要发布
出这个属性,不大清楚。
不过我这是权威做法。
 
阿朱兄,
想要分么?
看我这个问题:(1)me 现在不学OOP了:数据库中域的概念
----本来想给你发个Email问呢
 

Similar threads

I
回复
0
查看
707
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
581
import
I
I
回复
0
查看
500
import
I
顶部