请教高手一个关于delphi7禁止窗口最小化的问题。

我有一个程序A,我用vb写的,我把窗口MinButton属性设为false以后最大化和最小化按钮就去掉了,窗口就不能最小化了。这时点击显示桌面,程序也会不见,不过你要是打开桌面的任何一个程序,我自己写的那个程序A也会自己在桌面再次显示。

我现在用delphi7写了同样的一个程序,最小化和最大化按钮也去掉了,点击显示桌面,程序也在桌面显示了,但是不同的时,我这时打开桌面上的任何程序,我自己写的那个程序却没有在桌面再次显示,也就是说程序虽然没有了最小化按钮,但是点击显示桌面后,程序还是最小化了。

我怎么样才能实现就像VB的那个功能,点击桌面程序虽然不见了,但却不是最小化。

注意:我要的不是一直在桌面显示,现在我能让程序一直在桌面显示,但是问题时,点击显示桌面,程序可以看见。
我要的是点击桌面后程序就在桌面看不见了,但这时并没有最小化。
有个地方写错了:点击显示桌面,程序也在桌面“不见”了,但是不同的时,我这时打开桌面上的任何程序,我自己写的那个程序却没有在桌面再次显示

第1个回答  2012-09-09
这个还是建议你使用注册系统热键的方法,使用快捷键操作窗口的隐藏和显示
第2个回答  2012-09-14
1、可以让程序一直在桌面,让它透明为1.
2、最小化也能截图,何须非要打开呢?追问

最小化怎么截图?这我不会啊。请教怎么最小化截图啊。求指教。

追答

procedure TForm2.Button1Click(Sender: TObject);
begin
Timer1.Enabled:= true;
SetCapture(Self.Handle);
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
Timer1.Enabled:= false;
end;
procedure TForm2.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Timer1.Enabled:= false;
ReleaseCapture;
end;
procedure TForm2.Timer1Timer(Sender: TObject);
begin
GetCursorPos(pt);
c:= GetPixel(GetDC(0), pt.X, pt.Y);
Edit1.Text:= format('#%.6x', [c]);
Panel1.Color:= c;
end;
这个是我写的屏幕取色,本来鼠标在窗体之外点击,窗体将失去焦点,那么鼠标的按下事件就不会触发。经过 SetCapture(Self.Handle);,在窗体外点鼠标也会触发事件,表明窗体还有管用。
截图也同样道理吧,我只是想像是这样,你试试

第3个回答  2012-09-09
不知道你这样搞有什么意义,拼命地与你的软件用户作对,有什么好处,人家点击显示桌面的原因是因为目前桌面上打开的程序太多了,想最小化目前桌面上的所有程序,打开另外一个目前桌面上没有的程序,但是你却要你的软件老是阻挡住用户的视线,人家清除桌面后,另外打开一个他希望马上使用的软件,结果你那东西,马上跳出来与用户作对,这和一些人无论软件是什么性质,总是设置一个开机自动启动一样,招用户讨厌啊!其结局就是,用户一看到有这种副作用的软件就删除,不用你的臭软件。
和用户作对,是没有什么好结果的。追问

这不是作对,别人打开软件,窗口虽然显示在桌面,但是并没有获得焦点,也挡不住你打开的软件,因为我需要对我的软件时刻进行截图,如果最小化了,就截不到了,而用VB做的那个效果,就正好适合,只是速度慢,不想用。
用delphi做的,点显示桌面时,其实也是把窗口最小化了,而用VB做的,点了显示左面,虽然看不到窗口,但窗口却没最小化,这时依然能截图监视程序运行状况。

本回答被网友采纳

请教高手一个关于delphi7禁止窗口最小化的问题。
这个还是建议你使用注册系统热键的方法,使用快捷键操作窗口的隐藏和显示

请问怎样隐藏Delphi将无边框窗口最小化时缩小到左下角的标题栏…
如果不是主窗体,在以上代码的基础上,可以考虑重写消息处理程序,对不同的消息进行处理。Delphi7+Windows XP下代码如下:procedure WMSYSCOMMAND(var Msg: TWMSYSCOMMAND); message WM_SYSCOMMAND;procedure TForm2.WMSYSCOMMAND(var Msg: TWMSYSCOMMAND);begin \/\/当最小化时,只显示在任务栏 case msg.C...

如何使用Delphi7里timer控件?
一、 发起封面完成思绪 为了完成发起封面的效果,我们要在delphi中运用两个窗体。一个窗体A用于显现顺序的发起封面,而另一个为顺序的主窗体B包括了您所想象的种种功用。窗体A是一个非规则窗口,其标题栏及最大化、最小化按钮和边框都被屏蔽掉了,其用一个Image控件装载一个图片文件来显现顺序的封面...

Delphi7怎么让一个窗口永远置前
让窗口置前,通常是设置:FormStyle := fsStayOnTop;或是:SetForegroundWindow(Handle) ;SetActiveWindow(Application.Handle) ;

delphi,只允许让程序运行一次。
这个例子相对来说有一点难,所以我自己写了一个,跟上面差不多,只是添加了几个代码(有点乱,将就着看吧,- -!),但这里有一个缺点,就是当程序运行时,再次运行该程序,的确会将最小化或是被其他窗口遮盖的程序窗体放到其他窗口之上,但这个窗口却无法最小化了,还没弄清是什么原因。program ...

这个Delphi7多窗口。怎样可以弄成一个窗口像易语言那样。这个看着不习...
delphi 的 IDE 窗口布局,是可以自定义的。delphi 7使用的是经典的多窗口,可以设置调整窗口的大小、位置,但通常并不会融合在一个窗口里。从 delphi 2005 开始,IDE 桌面默认使用的是单一窗口,并可以选择经典的多窗口显示布局。

win7安装了delphi7,打开后不能显示代码编辑器窗口,怎么回事?
右键单击Delphi的快捷方式,或者C:\\program files\\borland\\delphi7\\bin\\delphi32.exe 选择属性-兼容性,以管理员方式运行。如果想避免每次弹出的提示,以及永远避免类似权限导致的软件问题,可以右键单击我的电脑,选择管理,本地用户,然后启用Administrator用户,以后使用Administrator用户登录系统。为安全起见,...

delphi7新建一个form
你可以在form1的onclose事件中写上form2.show的代码啊 onclose事件是窗体关闭事件,你在这里写上代码的只要窗体被关闭就会执行后面的代码,但是这样的花form1好像不能做为主窗体 我建议你只是隐藏form1,不要关闭这样的话就在hide事件中写form2.show的代码。hide事件是窗体隐藏事件 在登录按钮中的代码...

求教个delphi7的多窗体简单问题。我现在创建了一个主窗体form1,添加一...
做为一个程序,一个句柄。。如何出现两个在任务栏?你可以用调用来实现,即开发两个程序,用FORM1来调用FORM2.这样就会实现了,其实,这也是很多软件的实现方法。。比如360.。

delphi7打开工程文件时的奇怪问题
out of memory是内存不足,还有delphi7存在于win7不兼容的问题,解决问题的方法很简单:1、修改“C:\\Program Files\\Borland\\Delphi7\\Bin”的权限(右击上面的目录-》属性-》安全-》编辑-》修改后确定退出),赋予于users组修改权限;2、修改“C:\\Program Files\\Borland\\Delphi7\\Projects”的权限(右击上面...

相似回答