如何在不同分辨率模式下,都能使自己的软件很美观; 800*6001024*768我做的是在1024*768下弄得那位大虾交交我,panl如何设置上面各个控件,是窗体变化时,控件能根据比例一起变化!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 转贴喽: 一、 根 据 新 的 分 辨 率 自 动 重 画 表 单 及 控 件 ---- 先 在 表 单 单 元 的Interface 部 分 定 义 两 个 常 量, 表 示 设 计 时 的 屏 幕 的 宽 度 和 高度( 以 像 素 为 单 位)。 在 表 单 的Create 事 件 中 先 判 断 当 前 分 辨 率 是 否 与 设 计 分辨 率 相 同, 如 果 不 同, 调 用 表 单 的SCALE 过 程 重 新 能 调 整 表 单 中 控 件 的 宽 度和 高 度。 ConstOrignwidth=800;Orignheight=600;procedure TForm1.FormCreate(Sender: TObject);beginscaled:=true;if (screen.width<>orignwidth) thenbeginheight:=longint(height)*longint(screen.height) div orignheight;width:=longint(width)*longint(screen.width) div orignwidth;scaleby(screen.width , orignwidth);end;end;---- SCALE 过 程 在 调 整 控 件 宽 度 和 高 度 的 同 时, 也 自 动 调 整 控 件 字 体 的 大 小,以 适 应 新 的 分 辨 率, 但 美 中 不 足 的 是 它 并 不 改 变 控 件 的 顶 点 坐 标 位 置, 也就 是 说, 该 过 程 不 改 变 控 件 之 间 的 相 对 位 置 关 系。 要 想 调 整 控 件 之 间 的 选队 相 对 位 置, 还 需 要 自 己 编 程 实 现, 有 兴 趣 的 读 者 可 试 一 试。 ---- 二、 将 机 器 分 辨 率 更 改 为 设 计 时 的 分 辨 率 ---- 这 种 方 法 不 改 变 表 单 本 身, 而 是 将 屏 幕 分 辨 率 更 改 为 与 表 单 设 计 时 用 到的 分 辨 率 相 同。 它 需 要 用 到WINDOWS API 函 数EnumDisplaySettings 和ChangeDisplaySettings, 前者 取 当 前 显 示 模 式 信 息, 后 者 则 更 改 显 示 设 置, 具 体 参 数 的 含 义 请 参 见DELPHI 帮 助。 设 计 时 宽 度 常 量 和 高 度 常 量 的 定 义 如 方 法 一。 procedure TForm1.FormCreate(Sender: TObject);vardevmode:tDevicemode;beginif screen.width<>orignwidth then beginif EnumDisplaySettings(nil,0,devmode) then begindevmode.dmfields:=dm_pelswidth OR dm_pelsheight ;devmode.dmpelswidth:=orignwidth; {宽度}devmode.dmpelsheight:=orignheight;{高度}ChangeDisplaySettings(devmode,0); {更改设置}end;end;end; 最好的方法是在VCL控件的OnResize事件中重写控件的大小与位置。 关于 DBCtrlGrid1 问题 如何设置win2000或者winxp或者注册表,不记录上网历史、文档历史记录? 数据库表的问题,谢谢了 求delphi编译的资料 请问各位:怎么实现自动返回主界面 急急急!!!!怎样在工程中加入一个TOleServer类型的COM? [求救]▓▓▓如何在Delphi7中添加TNMUDP件▓▓▓UP有分.望高手们救救小弟 征集公司名称(有奖) 如何在DBGrid中实现使用回车键,切换单元格编辑? 如何判断出某一个目录下到底有多少文件? Qrlabel显示问题? 再问一个问题:动态生成的按钮怎样响应它的click事件
度( 以 像 素 为 单 位)。 在 表 单 的Create 事 件 中 先 判 断 当 前 分 辨 率 是 否 与 设 计 分
辨 率 相 同, 如 果 不 同, 调 用 表 单 的SCALE 过 程 重 新 能 调 整 表 单 中 控 件 的 宽 度
和 高 度。 Const
Orignwidth=800;
Orignheight=600;procedure TForm1.FormCreate(Sender: TObject);
begin
scaled:=true;
if (screen.width<>orignwidth) then
begin
height:=longint(height)*longint
(screen.height) div orignheight;
width:=longint(width)*longint
(screen.width) div orignwidth;
scaleby(screen.width , orignwidth);
end;
end;
---- SCALE 过 程 在 调 整 控 件 宽 度 和 高 度 的 同 时, 也 自 动 调 整 控 件 字 体 的 大 小,
以 适 应 新 的 分 辨 率, 但 美 中 不 足 的 是 它 并 不 改 变 控 件 的 顶 点 坐 标 位 置, 也
就 是 说, 该 过 程 不 改 变 控 件 之 间 的 相 对 位 置 关 系。 要 想 调 整 控 件 之 间 的 选
队 相 对 位 置, 还 需 要 自 己 编 程 实 现, 有 兴 趣 的 读 者 可 试 一 试。
---- 二、 将 机 器 分 辨 率 更 改 为 设 计 时 的 分 辨 率 ---- 这 种 方 法 不 改 变 表 单 本 身, 而 是 将 屏 幕 分 辨 率 更 改 为 与 表 单 设 计 时 用 到
的 分 辨 率 相 同。 它 需 要 用 到WINDOWS API 函 数EnumDisplaySettings 和ChangeDisplaySettings, 前
者 取 当 前 显 示 模 式 信 息, 后 者 则 更 改 显 示 设 置, 具 体 参 数 的 含 义 请 参 见
DELPHI 帮 助。 设 计 时 宽 度 常 量 和 高 度 常 量 的 定 义 如 方 法 一。 procedure TForm1.FormCreate(Sender: TObject);
var
devmode:tDevicemode;
begin
if screen.width<>orignwidth then
begin
if EnumDisplaySettings(nil,0,devmode) then
begin
devmode.dmfields:=dm_pelswidth OR dm_pelsheight ;
devmode.dmpelswidth:=orignwidth; {宽度}
devmode.dmpelsheight:=orignheight;{高度}
ChangeDisplaySettings(devmode,0); {更改设置}
end;
end;
end;