在Delphi编程中创建一个启动闪现窗口
点击次数:60 次 发布日期:2008-11-09 08:38:37 作者:源代码网
|
源代码网推荐 由于工程本身创建了程序的主窗口,一般情况下主窗口最先出现, 那么闪现 源代码网推荐 窗口如何出现在主窗口之前。 源代码网推荐 如果我们将主窗口的可视(Visible)属性设置为假,于工程启动时,是否能 源代码网推荐 将主窗口暂时隐藏起来,以使闪现屏幕最先出现呢?答案是不能。 因为应用程序 源代码网推荐 自动在适当时候,使Form可视。(注:当一个Form用做子窗口或对话框, 不需要 源代码网推荐 它们时,可视(Visible)属性设为假,可隐藏起Form。) 源代码网推荐 那么我们怎么解决这个问题呢?有以下两种方法: 源代码网推荐 方法一:调用Showmodal函数来实现。Showmodal方式使一个窗口为激活窗口, 和 源代码网推荐 Show相似,但它令窗口模式化。现举一例说明: 源代码网推荐 ⒈开始一个新工程。给表格起名为MainForm,MainForm的单元起名为Main, 工程文 源代码网推荐 件起名为Test。 源代码网推荐 ⒉在MainForm中插入一个Button部件,将其Caption属性设为“关闭”,为该部件 源代码网推荐 的OnClick事件创建一个过程,并在过程的begin和end之间插入Close语句。 源代码网推荐 ⒊在应用程序添加一个表格,将这个表格起名为MoveForm,MoveForm 的单元起名 源代码网推荐 为Move。 源代码网推荐 ⒋为便于演示,在MoveForm中插入一个Label部件,设置其Caption 属性为“欢迎 源代码网推荐 进入本系统”。 源代码网推荐 ⒌建立两个表格之间的关联。在Unit Main的 implementation 中加入语句 uses 源代码网推荐 move; 源代码网推荐 再为MainForm创建OnActivate事件。 源代码网推荐 procedure TMainForm.FormActivate(sender:TObject); 源代码网推荐 begin 源代码网推荐 MoveForm.Showmodal; 源代码网推荐 end; 源代码网推荐 ⒍从Component模板的System类别中选择一个计时器(Timer),添加入 MoveForm 源代码网推荐 表格中,设置其Interval属性为3000(可根据需要自定义),再为其OnTimer事件 源代码网推荐 添加语句 源代码网推荐 close; 源代码网推荐 加入一个Timer部件目的是用以控制闪现窗口显示时间。在此, MoveForm显示了3 源代码网推荐 秒钟后关闭,主窗口MainForm自动被激活。 源代码网推荐 ⒎编译、运行程序,就能得到延迟为3秒的闪现窗口。 源代码网推荐 方法二:你可通过修改工程文件中的源代码来实现,这在Delphi 的编程中是很少 源代码网推荐 见的。现举一例具体说明: 源代码网推荐 前四步同方法一。 源代码网推荐 ⒌选择View/Project Manager,击Option按钮,选择结果Project Option 对话底 源代码网推荐 部的Forms页栏目。注意,MainForm和MoveForm是在Auto-create forms 列表中。 源代码网推荐 选择MoveForm并击右键头按钮,把这个表格移到 Available forms 。 所有的 源代码网推荐 Delphi表格通过缺省方式自动在内存中建立, 因此它们要消耗内存和系统资源。 源代码网推荐 在类似这里(程序运行时创建一个表格)的情况下, 你应该将表格从自动创建列 软件开发网 www.mscto.com 源代码网推荐 表格中去掉。 源代码网推荐 ⒍下一步修改工程的源代码。选择View/Project Source,修改begin和end之间的 源代码网推荐 语句如下: 源代码网推荐 程序清单Test.Dpr 源代码网推荐 program Test 源代码网推荐 uses 源代码网推荐 forms, 源代码网推荐 Main in "MAIN.PAS"{MainForm}, 源代码网推荐 Move in "Move.PAS"{MoveForm} 源代码网推荐 源代码网推荐 {$R *.RES} 源代码网推荐 源代码网推荐 begin 源代码网推荐 MoveForm:=TMoveForm.Create(Application);{Create创建闪现窗口对象} 源代码网推荐 MoveForm.Show; 源代码网推荐 MoveForm.Update; 源代码网推荐 Application.CreateForm(TMainForm,MainForm); 源代码网推荐 MoveForm.Hide; 源代码网推荐 MoveForm.Free;{Free从内存中释放对象} 源代码网推荐 Application.Run; 源代码网推荐 end. 源代码网推荐 第一条语句创建了对象,该对象存在内存中,但还不能看见, 为了让它出现并更 源代码网推荐 新它的内容,调用对象的Show和Update成员函数:Show和Update。 当闪现窗口使 源代码网推荐 用完后,用Hide函数将它隐藏起来,然后用Free函数释放它所占据的内存。 源代码网推荐 ⒎如果此刻你编译和运行程序,MoveForm窗口一闪而过, 你可能未来得及看 源代码网推荐 清。为使MoveForm窗口显示几秒种,我们可为MainForm的OnCreate 事件创建一个 源代码网推荐 处理程序,延迟MoveForm窗口的显现时间。 源代码网推荐 program TMainForm.FormCreate(sender:Tobject); 源代码网推荐 var 源代码网推荐 currentTime:LongInt; 源代码网推荐 begin 源代码网推荐 currentTime:=GetTickCount div 1000; 源代码网推荐 while ((GetTickCount div 1000)<(currentTime 3) do 源代码网推荐 {不做任何事); 源代码网推荐 end; 源代码网推荐 end. 源代码网推荐 GetTickCount函数返回窗口启动后过去的毫秒数,这个值除以1000 转化为秒数。 源代码网推荐 此时你编译运行程序,就能得到一个延迟3秒多的闪现窗口。 源代码网推荐 为闪现窗口添加上Image部件,再对字体及窗口进行修饰,我们就能为应用程 源代码网推荐 序,创建一个精美的封面或在程序启动时显示重要提示。 源代码网推荐 源代码网供稿. |
