各位高手,
我在一个FORM中有一个PAGECONTROL,然后每个sheet中有一个frame,由于这些FRAME都是从相同的基类中派生
出来的,所有有很多操作的快捷键是一样的。但同时打开多个FRAME时,相同的关键键,系统只当作是第一个SHEET中
的操作,而后打开的FRAME的快捷键都失灵了,我是通过在FRAME中设置actionlist实现的,
如果这样不行的话,FRAME本身没有KEYDOWN和KEYPRESS事件,能不能加上这个事件,然后手工处理快键值得的处理过程呢。
我在一个FORM中有一个PAGECONTROL,然后每个sheet中有一个frame,由于这些FRAME都是从相同的基类中派生
出来的,所有有很多操作的快捷键是一样的。但同时打开多个FRAME时,相同的关键键,系统只当作是第一个SHEET中
的操作,而后打开的FRAME的快捷键都失灵了,我是通过在FRAME中设置actionlist实现的,
如果这样不行的话,FRAME本身没有KEYDOWN和KEYPRESS事件,能不能加上这个事件,然后手工处理快键值得的处理过程呢。
解决方案 »
- 一个简单的E语言函数据转为DELPHI函数
- 急救:三层结构中,客户端退出后即无法连接服务器
- 关于好的ICO程序图标
- 如何用API实现发送数据到串口,然后接收来自串口的状态值?
- 严重抗议CSDN的广告满天飞导致CPU占用率高居不下
- 求教!一个动态参数的问题!!!
- 版主,让我借这里问个问题吧,哪里有联想功能的拼音下载?打完一个“电”字,自动出来选择让你选“话”“脑”“视”等,就象手机一样,这
- 怎样比较的取得服务器的系统时间??
- dbgrid小问题
- 喝白开水有利身体健康
- 如何实现字符串数字部分加1,如(fg00100227)变到(fg00100228),(fg00100229)......
- sybase转到DB2,有无人总结这方面注意问题和事项,菜鸟还没接触过DB2
没有办法,用最笨的办法。在TAB页切换时,先屏蔽所有的快捷键,然后再放开所需要action过程如下:[已实现,未整理版本]
var
i:integer;
j:integer;
k:integer;
tmpState:TActionListState;
Begin
for j:=0 to self.ComponentCount -1 do
BEGIN
IF (self.Components[j]).ClassParent.ClassName ='TFraBasic' THEN
BEGIN
FOR K:=0 TO self.Components[j].ComponentCount -1 do
Begin
if AllowIndex= ((self.Components[j] as TFrame).Parent as TBSSkinTabSheet).TabIndex THEN
tmpState:=asNormal
else
tmpState:=asSuspended;
if uppercase(self.Components[j].Components[k].ClassName) ='TACTIONLIST' THEN
((self.Components[j].Components[k]) AS TACTIONLIST).State :=tmpState;
end;
END;
IF (self.Components[j]).ClassParent.ClassName ='TFraBasicAlize' THEN
BEGIN
FOR K:=0 TO self.Components[j].ComponentCount -1 do
Begin
if AllowIndex= ((self.Components[j] as TFrame).Parent as TBSSkinTabSheet).TabIndex THEN
tmpState:=asNormal
else
tmpState:=asSuspended;
if uppercase(self.Components[j].Components[k].ClassName) ='TACTIONLIST' THEN
((self.Components[j].Components[k]) AS TACTIONLIST).State :=tmpState;
end;
END;
IF (self.Components[j]).ClassParent.ClassName ='TFraBasicQuy' THEN
BEGIN
FOR K:=0 TO self.Components[j].ComponentCount -1 do
Begin
if AllowIndex= ((self.Components[j] as TFrame).Parent as TBSSkinTabSheet).TabIndex THEN
tmpState:=asNormal
else
tmpState:=asSuspended;
if uppercase(self.Components[j].Components[k].ClassName) ='TACTIONLIST' THEN
((self.Components[j].Components[k]) AS TACTIONLIST).State :=tmpState;
end;
END; END;
End;