网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
RECT在Delphi中的灵活使用
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
像的平铺显示;按下按钮5退出程序。以上方法及程序在Windows95、Delphi2.0环境下调试通过。
----编者注:本文源程序代码发表在本报WWW站点上,地址是:http://www.computerworld.com.cn/98/skill/default.htm。欢迎访问!
用VB5设计适应性界面
北京1840信箱计算中心(102205)--杨春生
--------------------------------------------------------------------------------
----在设计应用软件时,设计者总希望设计的软件,无论显示器分辨率设置是640×480、800×600还是1024×768,无论显示器设置是在大字体还是在小字体,都能正常运行,且具有美观一致的界面。本文介绍笔者解决这些问题的方法,供参阅。
使界面居中
----为了使界面元素能在各种显示分辨率下均有合理的布局,可以采用两种方法。一种是获取当前显示分辨率,并根据这一分辨率计算界面各元素的位置和大小来进行设置。这种方法虽然能解决界面元素布局问题,但需要知道每个元素的位置和大小,程序烦琐。另一种方法是先设计一个具有极大化、无边界、无标题、无控制盒的窗体,然后在其上放置一个容器控件Picture,在Picture中再放置其他控件。在窗体Load事件中根据当前的显示分辨率居中Picture,从而实现了居中整个界面。具体代码如下:
   Private Sub Form_Load()
    Call CenterControl(Picture1)
   End Sub
   Public Sub CenterControl(obj As Object)
    Dim cx, cy As Single
    cx =(Screen.Width/Screen.TwipsPerPixelX -obj.Width)/2 #
    cy =(Screen.Height/Screen.TwipsPerPixelY -obj.Height)/2 #
   obj.Left = cx
    obj.Top = cy
   End Sub
使界面适应大字体与小字体
----Win95在创建控件时,根据当前显示属性为大字体或小字体来作相应调整。尽管应用程序传送的参数(控件位置和尺寸)是一致的,但实际控件的位置和尺寸在这两种情形下并不一样。如果应用程序仅仅考虑一般小字体的情况,在大字体下界面则十分难看混乱,甚至无法操作。为解决这一问题,可通过系统注册表来了解当前显示器设置。下面的程序采用了另一种方法:在一个映射模式为Pixel的窗体中放置一个控件,在显示属性为小字体的设计环境下首先看一下控件的初始位置x、y,然后在窗体的Load事件中计算出x和y方向的放大比例xFac、yFac:
   Private Sub Form_Load()
    xFac = 400 # / mmlhwnd.Left
    yFac = 400 # / mmlhwnd.Top
   End Sub
----其中:mm\hwnd为放置在窗体中的控件,初始坐标为400、400。
----最后在各个需要调整界面的窗体Load事件中调用下列子程序,调整各控件的位置与大小:
   Public Sub CorrectForm(fm As Form)
   Dim C As Control
   For Each C In fm.Controls
If TypeOf C Is Timer Then
    ElseIf TypeOf C Is CommonDialog Then
    ElseIf TypeOf C Is Line Then
    C.X1 = C.X1 * xFac
    C.Y1=C.Y1 *yFac
    C.X2=C.X2 *xFac
    C.Y2=C.Y2 *yFac
    Else
    C.Left=C.Left *xFac
    C.Top=C.Top *yFac
    If TypeOf C Is SSCommand Then
    C.Width=C.Width *xFac
    C.Height=C.Height *yFac
    C.FontSize=C.FontSize *xFac
    ElseIf TypeOf CIsCommandButtonThen
C.Width=C.Width *xFac
    C.Height=C.Height *yFac
    C.FontSize=C.FontSize *xFac
    ElseIf TypeOf C Is ListBox Then
    C.Width=C.Width *xFac
    C.Height=C.Height *yFac
    C.FontSize=C.FontSize *xFac
    ElseIf TypeOf CIsComboBox Then
    C.Width=C.Width *xFac
    C.FontSize=C.FontSize *xFac
    End If
    End If
    Next C
    End Sub
----上述程序中仅列举了几个典型的控件,如果窗
  • 下一篇资讯: 在DELPHI程序中拨号上网
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号