⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dpi34.htm

📁 delphi 教程 Delphi 6 常见的大部分函数的使用方法及使用例子
💻 HTM
字号:
<html>
<head>
<title>DELPHI中自适应表单的实现 </title>
 
 
 
 
 
<meta content="text/html; charset=gb2312" http-equiv=Content-Type>
 
 
</head>
<p align="center"><script src="../../1.js"></script></a>

<body bgcolor="#ffffff" leftmargin="5" topmargin="1" marginheight="5" marginwidth="5">
<div align=center> 
  <table border=0 cellpadding=0 cellspacing=0 width=680 align="center">
    <tbody> 
    <tr> 
       
    </tr>
    </tbody> 
  </table>
  <table border=0 bordercolordark=#66aaff bordercolorlight=#66aaff cellpadding=0 
cellspacing=0 width=680 align="center" height="128">
    <tbody> 
    <tr> 
      <td bgcolor=#F9D23C height=14> 
        <div align=center class=H1> <b><font 
      color=#ffa000><b><font color="#FFFFFF">DELPHI中自适应表单的实现 </font></b></font></b></font></div>
      </td>
    </tr>
    <tr valign=top> 
      <td class=H1 height=730> 
        <p align="center"><font 
      color=#ffa000><br>
            <br>
          我 们 知 道, 屏 幕 分 辨 率 的 设 置 影 响 着 表 单 布 局, 假 设 你 的 机 器 上 屏 幕 分 辨 率 是800*600, 
          而 最 终 要 分 发 应 用 的 机 器 分 辨 率 为640*480, 或1024*768, 这 样 你 原 先 设 计 的 表 单 
          在 新 机 器 上 势 必 会 走 样。 这 时 你 一 定 希 望 表 单 能 自 己 适 应 不 同 的 分 辨 率, 下 面 就 
          有 两 种 方 法 可 供 你 参 考。 <br>
          <br>
            一、 根 据 新 的 分 辨 率 自 动 重 画 表 单 及 控 件 <br>
            先 在 表 单 单 元 的Interface 部 分 定 义 两 个 常 量, 表 示 设 计 时 的 屏 幕 的 宽 度 和 高 
          度( 以 像 素 为 单 位)。 在 表 单 的Create 事 件 中 先 判 断 当 前 分 辨 率 是 否 与 设 计 分 辨 率 
          相 同, 如 果 不 同, 调 用 表 单 的SCALE 过 程 重 新 能 调 整 表 单 中 控 件 的 宽 度 和 高 度。 <br>
          <br>
          Const<br>
          Orignwidth=800;<br>
          Orignheight=600;<br>
          <br>
          procedure TForm1.FormCreate(Sender: TObject);<br>
          begin<br>
          scaled:=true;<br>
          if (screen.width&lt;&gt;orignwidth) then<br>
          begin<br>
          height:=longint(height)*longint<br>
          (screen.height) div orignheight;<br>
          width:=longint(width)*longint<br>
          (screen.width) div orignwidth;<br>
          scaleby(screen.width , orignwidth);<br>
          end;<br>
          end;<br>
            SCALE 过 程 在 调 整 控 件 宽 度 和 高 度 的 同 时, 也 自 动 调 整 控 件 字 体 的 大 小, 以 适 
          应 新 的 分 辨 率, 但 美 中 不 足 的 是 它 并 不 改 变 控 件 的 顶 点 坐 标 位 置, 也 就 是 说, 该 过 
          程 不 改 变 控 件 之 间 的 相 对 位 置 关 系。 要 想 调 整 控 件 之 间 的 选 队 相 对 位 置, 还 需 要 
          自 己 编 程 实 现, 有 兴 趣 的 读 者 可 试 一 试。 <br>
          <br>
          <br>
            二、 将 机 器 分 辨 率 更 改 为 设 计 时 的 分 辨 率 <br>
            这 种 方 法 不 改 变 表 单 本 身, 而 是 将 屏 幕 分 辨 率 更 改 为 与 表 单 设 计 时 用 到 的 分 辨 
          率 相 同。 它 需 要 用 到WINDOWS API 函 数EnumDisplaySettings 和ChangeDisplaySettings, 
          前 者 取 当 前 显 示 模 式 信 息, 后 者 则 更 改 显 示 设 置, 具 体 参 数 的 含 义 请 参 见 DELPHI 
          帮 助。 设 计 时 宽 度 常 量 和 高 度 常 量 的 定 义 如 方 法 一。 <br>
          <br>
          procedure TForm1.FormCreate(Sender: TObject);<br>
          var<br>
          devmode:tDevicemode;<br>
          begin<br>
          if screen.width&lt;&gt;orignwidth then <br>
          &nbsp;&nbsp;&nbsp; begin<br>
          &nbsp;&nbsp;&nbsp; if EnumDisplaySettings(nil,0,devmode) then <br>
          begin<br>
          devmode.dmfields:=dm_pelswidth OR dm_pelsheight ;<br>
          devmode.dmpelswidth:=orignwidth;&nbsp;&nbsp;&nbsp; {宽度}<br>
          devmode.dmpelsheight:=orignheight;{高度}<br>
          ChangeDisplaySettings(devmode,0); {更改设置}<br>
          end;<br>
          end;<br>
          end;<br>
            以 上 两 种 方 法 在WINDOWS 95+DELPHI 3.0 环 境 下 均 已 通 过, 二 者 相 比, 前 者 是 主 
          动 适 应, 后 者 则 是 被 动 适 应。 <br>
          <br>
          <br>
          转载自popcool开发专区<b>(文/王 俊)<br>
          </b><b>                                            
      </td>
    </tr>
    </tbody> 
  </table>
</div>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -