我是菜鸟,请多多帮忙 ( 积分: 50 )

  • 主题发起人 主题发起人 爱上猫的鱼
  • 开始时间 开始时间

爱上猫的鱼

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TF_CKGL.N37Click(Sender: TObject);这一段话的sender需要解释一下
var f: TF_CJMessage;
fCaption: string;
begin
if Sender is TMenuItem then 这往下需要解释一下
fCaption:= Copy((Sender as TMenuItem).Caption,0,
Pos('(',(Sender as TMenuItem).Caption)-1)
else if Sender is TToolButton then
fCaption:= (Sender as TToolButton).Caption
else fCaption:= '列表未知';
f:= TF_CJMessage.CreateForm(nil,DM.Q_MesgKF,
15,fCaption,11);
try
f.ShowModal;
finally
f.Free;
end;
end;
我是菜鸟,希望大家多多帮忙。
 
if Sender is TMenuItem then // 如果时件是由TMenuItem引发的
fCaption:= Copy((Sender as TMenuItem).Caption,1{不是0},
Pos('(',(Sender as TMenuItem).Caption)-1)
例如
File(new)
File(Open) -->引发
File(Save)
fCaption:= Copy((Sender as TMenuItem).Caption,1{不是0},
Pos('(',(Sender as TMenuItem).Caption)-1) 就是
fCaption:= Copy("File(Open)",1{不是0},
Pos('(',"File(Open)")-1) 就是 File
fCaption:= "File"
因为Pos('(',"File(Open)")-1 = 4
Copy(Copy("File(Open)",1,4)= "File"
呵呵!祝愉快!
 
在具体一点啊 sender那个参数给说一下,楼上的
 
sender是你所传入的参数,一般在OnClick事件中都是你所点击的控件的对象.
if Sender is TMenuItem (如果Sender對像是屬於TMenuItem類)
这上在DELPHI中有IS AS之分
as 是一个转换符,用于将某一对象转换成另一对象,其实就是对象切割
is 是一个判断符,用于判断某一对象是否是另一对象的子对象

例如在按钮的onclick事件中,可通过Sender As Tbutton来使用触发事件的按钮,就象
(Sender As Tbutton).Caption='列表未知'
而is可用来作判断,比如
if sender is tbutton then ...;
if sender is tpanel then ...;等等。
 
Sender--意义:指本对象。Sender在什么对象相关代码里,那么Sender就是什么。
参考: http://www.delphibbs.com/delphibbs/dispq.asp?lid=1467055
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
482
import
I
I
回复
0
查看
739
import
I
I
回复
0
查看
516
import
I
I
回复
0
查看
595
import
I
后退
顶部