dll里面的窗体创建调用释放关闭都没有问题,但是就是Tab键没有用了?! 谢谢顺便问一声大家在开发的时候那么多的窗体都是怎样处理的,我的意思是都写在同一个exe里面吗?!晴推荐一种方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Tab在dll不能用是经常碰到的窗体多,做成Mdi了,sdi在dll中的模式 procedure ApplicationMessage(var Msg: TMsg; var Handled: Boolean);begin //处理TAB键 if (Msg.message = wm_KeyDown) and (Msg.wParam = VK_TAB) then begin Handled := True; if GetKeyState(VK_SHIFT) < 0 then SubForm.Perform(WM_NEXTDLGCTL, 1, 0) //上一个 else SubForm.Perform(WM_NEXTDLGCTL, 0, 0); //下一个 end;end;使用方法:在调用Dll的窗体的FormCreate事件里面Application.OnMessage := ApplicationMessage; 忘了告诉你了,SubForm为Dll里面返回的子窗体 哪里能找到 alphacontrols 的帮助文件? 有关dxdbgrid的使用/ 关于进程的问题!请高手不吝赐教!谢谢! WinXP下调用Word问题 这样的问题。。。。。。你遇网见过吗? perform()如何使用,要参数详解? 菜鸟求救 adoquery的问题,大侠帮忙 自定义组件事件响应 如何指定一个SINGLE的小数位长 谁有ReportBuilder 6 的汉化资源包 判断字符 如何实现类似MSN Messenger 的一段时间用户没有使用计算机显示"离线"
窗体多,做成Mdi了,sdi在dll中的模式
begin
//处理TAB键
if (Msg.message = wm_KeyDown) and (Msg.wParam = VK_TAB) then
begin
Handled := True;
if GetKeyState(VK_SHIFT) < 0 then
SubForm.Perform(WM_NEXTDLGCTL, 1, 0) //上一个
else
SubForm.Perform(WM_NEXTDLGCTL, 0, 0); //下一个
end;
end;使用方法:
在调用Dll的窗体的FormCreate事件里面
Application.OnMessage := ApplicationMessage;