C/S软件的窗口布局适应
C/S软件的开发中,一定要考虑用户的显示屏的效果。通过用户的屏幕分辨不同,显示出来效果不一致。因此,我们在编写时,要让不同的用户,都能使用,都有一个尽可以统一的窗口和功能效果。
一、常规屏幕分辨率
1、1920×1080
2、1920×1200
3、1680×1050
4、1600×900
5、1440×900
6、1280×1024
7、1280×800
二、软件的窗口形式
1、总体布局,通常左边是导航区,右边是操作区。
2、导航区
(1)下拉菜单导航
(2)功能块导航
(3)目录树导航
3、操作区
(1)左+中+右
(2)(上+下)+右
(3)左+(上+下)+右
三、软件操作的原则
1、软件按功能划分模块
功能模块的划分,本人通过独立的EXE划分,这样主程序通过分别调用EXE实施。因为,数据放在服务器,模块需要访问,以Dll划分是不适应的。
2、导航操作流程布局
3、一个窗口尽可以纳入整个操作
4、流程尽可能压缩纳入一键操作
由于采用富客户端的策略,做到上述功能,还容易的。
四、软件窗口的约定
1、软件窗口全屏分辨率确定为1600×900。
2、横向:左边导航区占用160,右边操作区1440。上下标题,以及windows任务栏占用约80。因此,通过PageTabel显示窗口的软件,窗口分辨率为1450×800。
五、窗口的布局
1、窗口分辨率(显示尺寸)固定1450×800;
2、当屏幕分辨率大于1600×900,分配给TabSheet分辨率小于1450×800时,通过内嵌形式,通过游标展示全屏。
2、当屏幕分辨率大于1600×900,分配给TabSheet分辨率大于1450×800时,自然是全屏展示,通过ReSize事件,分配小区,平衡界面。
这样,不管用户的屏幕分辨率是多少,都可以显示窗口的生个部分。有利于软件的推广使用。
1980X1020屏幕下:
1400X800屏幕下,通过拉动游标,显示全屏内容:
六、窗口的处理
1、操作区通过PageControl,动态创建TabSheet,容纳窗口。
2、窗口通过TFrameBar创建,通过设置HorzScrollBar.Range和VertScrollBar.Range设置窗口显示的约定尺寸。
MyFramebar.HorzScrollBar.Range := WRange; // 宽度
MyFramebar.VertScrollBar.Range := HRange; // 高度
3、设置Resize事件,针对窗口不同分辨率时,控件的位置设置。
注意:
(1)在TabSheet显示前,再执行Resize,这样隐藏控件变化时的过程。
(2)控件的位置变化,自左向右,自上向下,自外到内的原则。
(3)全屏的Resize最好只有一个,统一按规则执行,这样避免出现乱屏。
七、艺术效果的追求
1、功能块的划分,不要简单1/2,最好按黄金分隔法(0.618)。
2、使用AlphaControls控件或其它第三方控件,在窗口的控件和处理上独特,也少写了很多代码。
3、
上述表述,仅是本人编程过程的经验,仅供参考。