如何在同一个程序中不要显示多个窗口在任务栏上? 最近编写的软件出现了在windows任务栏上出现了多个窗口,原来是只有一个窗口的,窗口的图标也是application的图标,现在出现了多个窗口,并且窗口的图标都变成了windows的默认图标,这个可能是哪里引起的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 dll里面的窗体?调用时是否需要传主程序的Handle进去Application.Handle := MainHandle; 动态创建窗体时用:TXXXForm.Create(Application);保证没问题。但若用DLL封装窗体,就要把Application.Handle传给窗体。。 var ret:integer; if ret = Error_ALREADY_EXISTS then Application.MessageBox( '系统已在运行! ', '提示 ',mb_OK); 以前遇到过 在win7系统上遇到过,Xp系统没问题,好像是将这个改为 MainFormOnTaskbar:=false; 试试 有时messagebox的api调用时,也会多出一个来Handle参数不要用0,用application.handle或可避免有时窗体的Createparams里Params.WndParent设置为application.handle也会有帮助当然,如前几位所说,在dll中的窗体是要将主机程序的application.handle传过去才可以 var stl: integer;begin stl := GetWindowLong(Form1.handle,GWL_EXSTYLE); SetWindowLong(Form1.handle,GWL_EXSTYLE,stl and $FFFBFFFF); ... 起初我也想是否可能和dll的有关,后来我修改了代码,所有的dll都不载入,在主程序主界面上直接show一个窗口(TForm),一样的现象。 delphi 基本知识 如何从flash中取词 delphi如何连接ie? 使用ADO组件,发布时怎样将组件MDAC进行打包。 问个字符转byte数组的问题 研究从win98升级到win2000操作系统后,是否可以? 查找字符串的问题 如何判断一个目录是否存在,要用到哪个函数。 请问如何实现定时提醒功能,需要能对多个事务进行提醒 adoconnection连接Oracle问题 发个自己用XE2写的轻量级框架 这样声明抽象类有什么特别意义?
调用时是否需要传主程序的Handle进去
Application.Handle := MainHandle;
但若用DLL封装窗体,就要把Application.Handle传给窗体。。
ret:integer;
if ret = Error_ALREADY_EXISTS then
Application.MessageBox( '系统已在运行! ', '提示 ',mb_OK);
Handle参数不要用0,用application.handle或可避免有时窗体的Createparams里Params.WndParent设置为application.handle也会有帮助
当然,如前几位所说,在dll中的窗体是要将主机程序的application.handle传过去才可以
stl: integer;
begin
stl := GetWindowLong(Form1.handle,GWL_EXSTYLE);
SetWindowLong(Form1.handle,GWL_EXSTYLE,stl and $FFFBFFFF);
...