社区
Delphi
帖子详情
怎样让窗体一出现即自动执行某一例程,然后自己关闭,最好放在哪个事件中?
wyj2
2000-02-16 01:21:00
有时要求窗体一出现就自己执行某一功能(譬如初始化),而且还要根据执行的结果判断是否要立即关闭窗体,但是关闭窗体的代码又不能放在Active或Show事件中,我通常的做法是放在Paint事件中,行倒是行,就是实现起来挺难过,还要专门声明一个信号判断是不是第一次Paint,我想可能有更舒服的办法,不知各位有何建议。谢谢赐教
...全文
380
11
打赏
收藏
怎样让窗体一出现即自动执行某一例程,然后自己关闭,最好放在哪个事件中?
有时要求窗体一出现就自己执行某一功能(譬如初始化),而且还要根据执行的结果判断是否要立即关闭窗体,但是关闭窗体的代码又不能放在Active或Show事件中,我通常的做法是放在Paint事件中,行倒是行,就是实现起来挺难过,还要专门声明一个信号判断是不是第一次Paint,我想可能有更舒服的办法,不知各位有何建议。谢谢赐教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
渤海海峡
2000-02-16
打赏
举报
回复
判断是否关闭窗体的代码应当放到 onclosequery事件中,根据条件判断来设定canclose.
data
2000-02-16
打赏
举报
回复
我也想知道
Lin
2000-02-16
打赏
举报
回复
可试试挂接WM_SHOWWINDOW消息:
procedure WMShowWindow(var msg: TWMSHOWWINDOW); Message WM_SHOWWINDOW;
当msg.Show为True,窗口被显示。详细情况可参阅TWMShowWindow结构和WM_SHOWWINDOW消息。
meijg
2000-02-16
打赏
举报
回复
为什么不能在SHOW里面处理,可以在SHOW事件里创建例程,再判断返回值,若需要关闭窗体,可以直接调用CLOSE事件,我是这样用的
meijg
2000-02-16
打赏
举报
回复
为什么不能在SHOW里面处理,可以在SHOW事件里创建例程,再判断返回值,若需要关闭窗体,可以直接调用CLOSE事件,我是这样用的
Venne
2000-02-16
打赏
举报
回复
这个功能我建议可以放在工程启动文件里面,甚至这个时候,一个窗口都未创建。
我可能表达的不是太明白,但是我觉得你需要的就象一个扉屏功能。比如启动DELPHI时,一个图形一直显示到DELPHI所有的环境导入完为止,然后自动消失。
一般的做法,是在创建主FORM之后创建扉屏,然后在工程文件,即DPR文件中显示它,然后做一些例程,并决定是否关闭。
我曾经的做法是在主FORM的CREATE事件时,因为需要导入一个数据库大量的数据,因此我建立了一个扉屏(即另一个窗口),在CREATE事件里创建这个窗口并且显示它,而且,在这个窗口上有一个进度条,表示数据导入的程度,当数据全部导入后,即关闭扉屏。
我不知道你想具体实现的功能,我感觉需要实现你所说的大概是有多种方法的,你是否可以提出一个具体的问题,然后用代码实现就比较有方向性。因为初始化就和我上面说的办法差不多。
yijun2000
2000-02-16
打赏
举报
回复
你需要的代码执行完毕之后,执行form_closequery事件,可以吗?
gypb
2000-02-16
打赏
举报
回复
其实很简单:
在FORM中申明一个函数,在主FORM中调用他就行了。
function TForm2.execute:boolean;
begin
form2.show;
{..do somthing
...}
result:=xxxx
end;
Hill
2000-02-16
打赏
举报
回复
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
//自定义消息
const
WM_AfterShowForm = WM_User +2;
type
TForm1 = class(TForm)
Button1: TButton;
//在此事件中使用 postMessage;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
//消息处理
Procedure AfterShowForm(var Msg: TMessage); Message WM_AfterShowForm;
//你自己的代码
Procedure AfterShow;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
Procedure TForm1.AfterShowForm(var Msg:TMessage);
begin
AfterShow;
end;
Procedure TForm1.AfterShow;
begin
Close;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
//发送消息
PostMessage(Handle,WM_AfterShowForm,0,0);
end;
end.
jll
2000-02-16
打赏
举报
回复
我曾经在Close语句后直接写其他语句,结果Close之后的语句仍然可以正常执行。你可以在OnCloseQuery事件中加上判断语句,如果要关闭主窗口,则设置CanClose:=true;否则,CanClose:=false。在Close语句后你可以加上要启动的其他程序或干其他事情。要启动其他程序可以试试Windows API函数:WinExec
WHQ
2000-02-16
打赏
举报
回复
如果是主窗口,当ShowWindow后,给窗口发一个你自己定义的消息——该消息处理函数完成你期望的任务——或直接调用你的处理函数;如果是子窗口,则可在Create后
QT常用
例程
收集整理(易集成至主工程)
常用Qt可用集成工程
使用 .NET 框架轻松开发完美的 Web
窗体
控件
分类: .NET Web基本控件 2004-10-24 23:17 1927人阅读 评论(0)收藏 举报 .netweb框架asp.net脚本浏览器 作者:David S. Platt 出自:微软 本文假定您熟悉 Visual Basic .NET、C# 和 HTML 下载本文的代码: WebC.exe (274KB) 摘要 预建的自定义控件可以简化和加快应
Qt常用的按钮控件编程(六)-- QDialogButtonBox 按钮
本文介绍`QDialogButtonBox`按钮编程。通过这个例子,巩固QT的信号与槽知识,了解Qt5对Qt4所做的改进。由于我们的开发的软件显示和输入需要在触摸屏上进行,因此本例演示了如何弹出一个小键盘。 本
例程
设计是在chatgpt的帮助下完成的,编译代码经过测试通过。
利用底层键盘钩子屏蔽任意按键
很多人都知道,如果想在系统范围内屏蔽键盘上的任意按键需要使用全局键盘钩子,然而像win键这样“倔强”的按键又不是普通的键盘钩子就能搞定的。这里我提供一种利用底层键盘钩子屏蔽任意按键(包括win键)的方法,并且作成了.dll动态链接库,方便以后使用。钩子,是一种相对复杂一点的技术,通常用来监视系统
中
某一
类型的
事件
,这些
事件
可以与
某一
线程相关(线程钩子),也可以是系统
中
的所有线程(全局钩子)。
delphi dll创建及调用
第一章 DLL简单介绍由于在目前的学习工作
中
,需要用到DLL文件,就学习了下,在这里作个总结。首先装简单介绍下DLL:1,减小可
执行
文件的大小DLL技术的产生有很大一部分原因是为了减小可
执行
文件的大小。当操作系统进入Windows时代后,其大小已经达到几十兆乃至几百兆。试想如果还是使用DOS时代的单
执行
文件体系的话一个可
执行
文件的大小可能将达到数十兆,这是大家都不能接受的。解决的方法就是...
Delphi
5,392
社区成员
262,732
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章