§Delphi软件界面设计的技巧和经验(已更新)

§Delphi软件界面设计的技巧和经验(已更新) 

  

笔记申明:
    本笔记内容多为借鉴各位前辈高手的经验结晶,目的在于减少在不是很必要的知识积累方面的时间浪费,如果看到笔记中内容恰巧便是你“创造”的,那无疑是对你的无私精神的肯定和赞赏,若在意你的版权(可以告知我在笔记中注明作者,但还望某些脸皮厚的人不要恬不知耻地把不是自己原创的也说成是自己原创!),又或者欲从中牟利,那对不起,笔记中内容为我于网络四处收集,既记不清收集地址,也记不清时间,我本人更没有以之牟利,所以只好请你海涵。要打官司?无所谓了,反正我的注册资料在网上全是假的(即使您告诉我查IP也是一样,反正代理和隐蔽IP的软件也非常多),你要愿意便慢慢查吧!

我给各位观者的留言:
    希望大家本着交流的精神,无私地奉献您的经验心得。共同进步。一个人默默地付出劳动(就算这劳动仅仅是作摘抄记录或者是亲自实践后的总结),积极性总不如看到有同兴趣爱好者的加入来得高涨。假如有您的参与,那无疑是对您所喜欢的程序设计这块领域的一份贡献,即使没有物质回报,但始终我们的精神是愉悦的。还有,转载的时候你可以完全把这些“废话”都去掉,笔记之所以写上这些是为了得到有热情的弟兄的加入补充而已。

1.常见的启动窗体的几种实现方法和优越性比较:

    关于制作软件的启动画面,前人的做法已经有不少,但总结起来就是以下几种:
        ①简单的启动闪现窗体,即所谓的Splash溅射窗体。仅仅包含一幅静态图片,不包含程序本身调用进程或进度的显示;
        ②较复杂也最常用包含程序本身调用进程或进度的启动闪现窗体。在静态图片的基础上,加入了复杂的动画效果;
        ③包含SWF或GIF,和程序本身调用进程或进度的启动闪现窗体,如3DS MAX等软件所常用;
        ④包含AVI和程序本身调用进程或进度的启动闪现窗体,其实与③相差不大;

    不知道诸君高见如何,菜鸟我是倾向于3DS MAX的做法,即③所述启动闪现窗体,因为它小巧别致,而且通过Flash的制作,表现的效果也是非常赏心悦目。

    ①的实现:

    Exp1:
   
    ⒈开始一个新工程。给表格起名为MainForm,MainForm的单元起名为Main, 工程文件起名为Test。
    ⒉在MainForm中插入一个Button部件,将其Caption属性设为“关闭”,为该部件的OnClick事件创建一个过程,并在过程的begin和end之间插入Close语句。
    ⒊在应用程序添加一个表格,将这个表格起名为MoveForm,MoveForm 的单元起名为Move。
    ⒋为便于演示,在MoveForm中插入一个Label部件,设置其Caption 属性为“欢迎进入本系统”。
    ⒌建立两个表格之间的关联。在Unit Main的 implementation 中加入语句 usesmove;再为MainForm创建OnActivate事件。

    procedure TMainForm.FormActivate(sender:TObject);
    begin
      MoveForm.Showmodal;
    end;
    ⒍从Component模板的System类别中选择一个计时器(Timer),添加入 MoveForm表格中,设置其Interval属性为3000(可根据需要自定义),再为其OnTimer事件添加语句close;加入一个Timer部件目的是用以控制闪现窗口显示时间。在此, MoveForm显示了3秒钟后关闭,主窗口MainForm自动被激活。
    ⒎编译、运行程序,就能得到延迟为3秒的闪现窗口。

    Exp2:

    ⒈开始一个新工程。给表格起名为MainForm,MainForm的单元起名为Main, 工程文件起名为Test。
    ⒉在MainForm中插入一个Button部件,将其Caption属性设为“关闭”,为该部件的OnClick事件创建一个过程,并在过程的begin和end之间插入Close语句。
    ⒊在应用程序添加一个表格,将这个表格起名为MoveForm,MoveForm 的单元起名为Move。
    ⒋为便于演示,在MoveForm中插入一个Label部件,设置其Caption 属性为“欢迎进入本系统”。
    ⒌选择View/Project Manager,击Option按钮,选择结果Project Option 对话底部的Forms页栏目。注意,MainForm和MoveForm是在Auto-create forms 列表中。选择MoveForm并击右键头按钮,把这个表格移到 Available forms 。 所有的Delphi表格通过缺省方式自动在内存中建立,因此它们要消耗内存和系统资源。在类似这里(程序运行时创建一个表格)的情况下,你应该将表格从自动创建列表格中去掉。
    ⒍下一步修改工程的源代码。选择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部件,再对字体及窗口进行修饰,我们就能为应用程序,创建一个精美的封面或在程序启动时显示重要提示。

//启动窗体的实现方式待续

现在我们来看看如何经常用到的指定容器的问题,也就是所谓的"左边几个按钮,点击后右边出现相应内容",这样的实现方式

    Exp1:
    1.新建一project,在Form1中分别放入Panel1、Panel2,设置Panel1的Align为alLeft,Panel2的Align为alClient,在Panel1上丢上Button1、Button2……按钮数量根据实际需要,然后在按钮Button1的OnClick事件下写如下代码:

    procedure TForm1.Button1OnClick(Sender: TObject);
    begin
      if Form2=nil then begin    
        Form2 := TForm2.Create(nil);
        Form2.Parent:=Panel2;
        Form2.BorderStyle:=bsNone;
        Form2.Align:=alClient;
        Form2.Show;
      end else begin
        Form2.Show;
      end;
    end;

 

转载于:https://www.cnblogs.com/wjzbjzz/articles/2808534.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值