想实现这样的一个功能,就是在窗体上单击鼠标后再按下某一按键(或者顺序相反),能显示出一个子窗体?请大神指教!!MDIForm
解决方案 »
- 程序运行时如何让窗口总在最前问题
- 请问如何使用TLabel控件输出长信息?
- delphi下 oracle8i客户端连9i服务器的问题!急
- 难,实在是难!头痛的问题
- 好郁闷,毕业设计程序代码被人"偷"了......
- 數據导出excel時 如何显示全数字字符串前面的零?
- 请问在98下能否安装delphi7.0?谁有delphi5安装版,能否发一个给我?
- 如何在程序里编程动态生成永久性字段?
- DBGrid 的奇怪现像,显示出两条完全相同的记录(库中只有一条)???
- 如何去掉DELPHI导出到EXCEL后合并EXCEL表格的单元格时弹出的确认合并信息框?(急)
- 平台IDE开发
- delphi Tchart中使用Tpointseries 画点状图,如何改变点的形状,如圆点,叉号,小三角...
假设第二个窗体的单元名为 unit2,
在主窗体的单元中(假设主窗体单元名为unit1)uses unit2接着uses Unit2; // 引用第二个窗体所在单元var
isClickForm:Boolean = False; // 全局变量,用来断定是否鼠标点击了窗体// 主窗体的 Click 时间
procedure TForm1.FormClick(Sender: TObject);
begin
isClickForm:=True; // 标记当前点击了主窗体
end;// 主窗体的 keypress 事件
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
// 如果当前点击了主窗体,并且按下了键盘的 a 键
if (isClickForm) and (Key = 'a') then
begin
isClickForm:=False;// 重置回false
Form2.Caption:='我是第二个窗体';
Form2.Show; // 调用unit2单元中的form2窗体对象的show方法显示该窗体
end;
end;
感谢sololie在深夜依旧回帖的帮助,还有一点小问题,就是不知怎么搞的,当我按下键盘后窗体不知怎么了,不能响应我的键盘命令。试过OnKeyPress和OnKeyDown都不行!我好像知道原因是因为我的Form里面存在如ComboBox类控件,窗体一加载焦点好像就落在ComboBox控件上了,我按下按键后相应的字符也被ComboBox控件接收了,所以窗体好像就不能响应我的键盘事件,请问怎样把焦点移到窗体上呢????
你不是说不响应消息嘛
spy++是个工具,可以看到窗体的消息
你不是说不响应消息嘛
spy++是个工具,可以看到窗体的消息我用的是Lazarus不是Delphi,新手啊,才开始学没两天,你说的spy++真没听说过,是IDE自带的还是怎么???
你不是说不响应消息嘛
spy++是个工具,可以看到窗体的消息我用的是Lazarus不是Delphi,新手啊,才开始学没两天,你说的spy++真没听说过,是IDE自带的还是怎么???
这个是VS自带的工具,网上有单独的下载。
带句柄的Windows窗口,这个工具都能可以用
感谢sololie在深夜依旧回帖的帮助,还有一点小问题,就是不知怎么搞的,当我按下键盘后窗体不知怎么了,不能响应我的键盘命令。试过OnKeyPress和OnKeyDown都不行!我好像知道原因是因为我的Form里面存在如ComboBox类控件,窗体一加载焦点好像就落在ComboBox控件上了,我按下按键后相应的字符也被ComboBox控件接收了,所以窗体好像就不能响应我的键盘事件,请问怎样把焦点移到窗体上呢????procedure TForm1.FormClick(Sender: TObject);
begin
isClickForm:=True; // 标记当前点击了主窗体 // 加入下面两行,
KeyPreview:=True; // keypreview也可以在属性面板中设定
ActiveControl:=nil; // 使所有窗体中的控件处于非活动状态
end;