delphi 程序窗体及控件自适应分辨率(通过ComponentCount遍历改变字体大小以及上下左右)
unit untFixForm; interface uses
Classes, SysUtils, Controls, Forms; type
TFontedControl = class(TControl)
public
property Font;
end; TFontMapping = record
SWidth:Integer;
SHeight:Integer;
FName:string;
FSize:Integer;
end; procedure FixForm(AForm:TForm);
procedure SetFontMapping; var
FontMapping:array of TFontMapping; implementation procedure SetFontMapping;
begin
SetLength(FontMapping, ); // 800 x 600
FontMapping[].SWidth := ;
FontMapping[].SHeight := ;
FontMapping[].FName := '宋体';
FontMapping[].FSize := ; // 1024 x 768
FontMapping[].SWidth := ;
FontMapping[].SHeight := ;
FontMapping[].FName := '宋体';
FontMapping[].FSize := ; // 1280 x 1024
FontMapping[].SWidth := ;
FontMapping[].SHeight := ;
FontMapping[].FName := '宋体';
FontMapping[].FSize := ; end; procedure FixForm(AForm:TForm);
var
i, j:integer;
t:TControl;
begin
with AForm do
begin
for i := to ComponentCount - do
begin
try
t := TControl(Components[i]);
t.left := Trunc(t.left * (Screen.width / ));
t.top := Trunc(t.Top * (Screen.Height / ));
t.Width := Trunc(t.Width * (Screen.Width / ));
t.Height := Trunc(t.Height * (Screen.Height / ));
except
end; { try }
end; { for i } for i := to Length(FontMapping) - do
begin
if (Screen.Width = FontMapping[i].SWidth) and (Screen.Height =
FontMapping[i].SHeight) then
begin
for j := to ComponentCount - do
begin
try
TFontedControl(Components[j]).Font.Name := FontMapping[i].FName;
TFontedControl(Components[j]).FONT.Size := FontMapping[i].FSize;
except
end; { try }
end; { for j }
end; { if }
end; { for i }
end; { with }
end; initialization
SetFontMapping; end.
SetFontMapping 方法可以自行修改,以适应更多的分辨率。
调用也非常简单,如下所示:
procedure TForm1.FormShow(Sender:TObject);
begin
if MessageBox(Handle, '要使用屏幕自适应吗?', '提示', MB_YESNO or
MB_ICONINFORMATION) = idno then Exit;
untFixForm.FixForm(Self);
end;
http://blog.csdn.net/han_348154920/article/details/4762928
delphi 程序窗体及控件自适应分辨率(通过ComponentCount遍历改变字体大小以及上下左右)的更多相关文章
- C# WinForm窗体及其控件自适应各种屏幕分辨率
C# WinForm窗体及其控件自适应各种屏幕分辨率 一.说明 我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观.实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置 ...
- C# ——窗体和控件随着分辨率的变化自适应大小
一.说明 我们自己编写程序的界面,会遇到各种屏幕分辨 率,只有自适应才能显的美观.实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比 ...
- C# Winform窗体和控件自适应大小
1.在项目中创建类AutoSizeForm AutoSizeForm.cs文件代码: using System; using System.Collections.Generic; using Sys ...
- Qt窗体内控件自适应调整大小
http://stackoverflow.com/questions/3492739/auto-expanding-layout-with-qt-designer After creating you ...
- WinForm窗体及其控件的自适应
3步骤: 1.在需要自适应的Form中实例化全局变量 AutoSizeFormClass.cs源码在下方 AutoSizeFormClass asc = new AutoSizeFormClass ...
- 转:C# WinForm窗体及其控件的自适应
一.说明 2012-11-30 曾经写过 <C# WinForm窗体及其控件自适应各种屏幕分辨率> ,其中也讲解了控件自适应的原理.近期有网友说,装在panel里面的控件,没有效果? 这 ...
- Winfon 页签切换及窗体控件自适应
由于公司的业务调整,最近不仅开发bs,还有不熟悉的cs,人手也不足,项目还多,对于cs来说,算是小白,虽然是一个人,也是硬着头皮写,拖拽控件,自定义控件.一个项目下来,对cs有了很深的认识,这里好好感 ...
- C# WinForm窗体及其控件的自适应
3步骤: 1.在需要自适应的Form中实例化全局变量 AutoSizeFormClass.cs源码在下方 AutoSizeFormClass asc = new AutoSizeFormClass ...
- 【Winfrom-适配窗体】 WinForm窗体及其控件的自适应,控件随着窗体变化
在Winform中,窗体最大化之后,控件仍然保持原来的大小,就会显得不好看,那么有什么办法让控件跟着窗体变化吗? 在需要自适应的Form中代码如下:(AutoSizeFormClass.cs源码在下方 ...
随机推荐
- Exception in thread "main" com.sun.xml.internal.ws.streaming.XMLStreamReaderException: unexpected XML tag.
webservice 抛异常,原因: public class HeaderHandler implements SOAPHandler<SOAPMessageContext>{ @Ove ...
- linux关闭防火墙及selinux
RHEL6.5 查看linux防护墙状态: service iptables status 关闭linux防火墙: 1)永久关闭,重启后生效 开启: chkconfig iptables on 关闭: ...
- node.js环境配置(angularjs高级程序设计中出现的错误)
一:npm install connect会出现错误:解决方法 1:$ npm install connect@2.X.X 2:$ npm install serve-static: 建立server ...
- springmvc实现REST中的GET、POST、PUT和DELETE
spring mvc 支持REST风格的请求方法,GET.POST.PUT和DELETE四种请求方法分别代表了数据库CRUD中的select.insert.update.delete,下面演示一个简单 ...
- 【转】两种方法教你在Ubuntu下轻松关闭触摸板(TinkPad)
Ubuntu是一个以桌面应用为主的Linux操作系统,所以在使用时我经常的触碰到触摸板,这样会造成我们一些的麻烦,所以要如何的关闭触摸板呢?我们一起来看看吧! Ubuntu下如何关闭触摸板(Tin ...
- Hibernate级联删除
如果cascade属性是默认值"none",当hibernate删除一个持久化对象的时候,不会自动删除与它关联的其他持久化对象.如果希望自动删除它关联的其他持久化对象,可以把cas ...
- 经典C面试题
12个有趣的C语言面试题 面试题C 摘要:12个C语言面试题,涉及指针.进程.运算.结构体.函数.内存,看看你能做出几个! 1.gets()函数 问:请找出以下代码里的问题: #include< ...
- python django model类型摘要
V=models.CharField(max_length=None[, **options]) #varchar V=models.EmailField([max_length=75, **opti ...
- java图片处理工具类
直接上代码: package com.zxd.tool; /** * Created by zhang on 14-3-1. * 图片的常用操作类 */ import java.awt.AlphaCo ...
- 配置PPTP服务器
1.验证内核是否加载了MPPE模块: modprobe ppp-compress-18 && echo MPPE is ok 2.安装所需的软件包: yum -y install pp ...