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

📄 dtccw04.html

📁 对于学习很有帮助
💻 HTML
📖 第 1 页 / 共 2 页
字号:

end;



procedure TForm1.FormMouseMove

             (Sender: TObject; Shift: TShiftState; X,

  Y: Integer);

begin

form1.repaint;

form1.Canvas.pen.color:=clRed;

form1.Canvas.pen.width:=3;

form1.Canvas.polyline([point(0,0), point(form1.width-10,0),

point(form1.width-10,form1.height-30),

               point(0,form1.height-30), point(0,0)]);

end;</pre>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. 为 图 形 按 钮 或 其
它 控 件 安 装 动 态 帮 助 功 能, 此 处 主 要 使 用 它 的 字 符 串 显 示
功 能, 也 就 是 当 鼠 标 移 到 指 定 控 件 上 时, 在 其 周 围 适 当 位
置 显 示 相 应 的 字 符 串, 当 鼠 标 离 开 时 通 过 图 像 覆 盖 动 作 使
字 符 串 消 失, 也 可 以 使 用 一 个 简 单 的 命 令 完 成 即form1.repaint,
它 的 作 用 是 使FORM1 内 的 所 有 控 件 全 部 重 新 绘 制, 这 样 即 可
快 速 清 除 原 来 显 示 的 字 符; 编 程 时 主 要 使 用 各 个 控 件 的 MouseMove()
事 件; 比 如 可 在 窗 口 中 安 放 两 个 按 钮, 并 安 排 如 下 代 码, 运
行 之 后 当 鼠 标 移 到 相 应 按 钮 上 时, 就 会 在 其 上 方 显 示 相 应
的 提 示 信 息, 鼠 标 移 到 窗 口 空 白 处 则 会 在 窗 口 的 左 下 角 显
示&quot;OK&quot; 字 样;&nbsp;
<pre>
procedure TForm1.Button1MouseMove

&nbsp;&nbsp;&nbsp;&nbsp; (Sender:TObject;Shift:TShiftState;X, Y: Integer);

begin

form1.repaint;

form1.Canvas.brush.color:=clGreen;

form1.Canvas.font.size:=8;

form1.Canvas.font.color:=$1200ffff;

form1.Canvas.TextOut(Button1.left,

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Button1.top-15,'OPEN FILE');

end;



procedure TForm1.Button2MouseMove

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Sender:TObject;Shift:TShiftState;X, Y: Integer);

begin

form1.repaint;

form1.Canvas.font.size:=8;

form1.Canvas.brush.color:=clRed;

form1.Canvas.font.color:=$1200ffff;

form1.Canvas.TextOut(Button2.left,Button2.top-15,'EXIT');

end;



procedure TForm1.FormMouseMove

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Sender:TObject;Shift:TShiftState;X,

&nbsp; Y: Integer);

begin

form1.repaint;

form1.Canvas.font.size:=12;

form1.Canvas.brush.color:=clBlue;

form1.Canvas.font.color:=$00ffffff;

form1.Canvas.TextOut(0,form1.height-50,'OK');

end;</pre>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. 仿 电 视 移 动 字 幕
或 图 像, 用 此 方 法 制 作 移 动 字 幕 的 基 本 方 法 是: 首 先 选 定
一 个 可 作 为 画 布 的 控 件, 比 如 FORM 或IMAGE, 然 后 用 一 种 填 充
颜 色 填 满 整 个 画 布, 在 画 布 的 固 定 位 置 显 示 一 个 特 殊 前 景
色 固 定 尺 寸 的 字 符 串, 在 TIMER 控 件 中 定 时 连 续 改 变 显 示 字
符 串 的 位 置, 由 于 原 来 位 置 的 字 符 串 不 能 自 动 消 失, 所 以
需 要 用 与 填 充 颜 色 相 同 颜 色 的 线 条 覆 盖 多 余 部 分, 这 样 即
可 实 现 平 滑 的 字 幕 移 动 效 果; 实 现 图 像 移 动 的 方 法: 可 事
先 定 义Bitmap 类 和Rect 类 变 量, 在 程 序 运 行 阶 段 建 立Bitmap 和Rect
对 象, 并 在Bitmap 中 装 入 指 定 的 图 像 文 件, 同 时 把 对 象Bitmap
装 入Rect 对 象 中 实 现 图 像 的 显 示, 然 后 在Timer 控 件 中 定 时 连
续 改 变Rect 的 坐 标 值, 并 用 与 填 充 颜 色 相 同 的 线 条 覆 盖 遗
留 图 像 部 分, 即 可 以 实 现 图 像 的 平 稳 移 动; 采 用 上 述 方 法
实 现 的 字 符 串 或 图 像 移 动 操 作, 其 效 果 平 稳, 无 任 何 闪 烁
或 抖 动 现 象, 视 觉 效 果 极 佳, 并 且 不 需 要 事 先 建 立 控 件,
完 全 由 程 序 代 码 实 现, 具 有 相 当 多 的 优 点; 编 程 举 例: 在
窗 体 中 安 放 时 间 控 件TIMER1、 图 像 框IMAGE1, 定 义TRECT 及TBITMAP
型 变 量, 并 在FormCreate 和Timer1Timer 事 件 中 安 排 如 下 代 码, 程
序 运 行 之 后 即 会 在 图 像 框 中 出 现 至 下 而 上 的 移 动 字 幕 及
图 像 效 果, 并 从 顶 部 消 失, 之 后 重 新 从 底 部 出 现;&nbsp;
<pre>
var&nbsp;&nbsp;&nbsp; { 定 义 变 量}

&nbsp; Form1: TForm1;

&nbsp; x,tt,l,h:integer;

&nbsp; pic:Trect;

&nbsp; map:Tbitmap;

{ 具 体 动 画 演 示 代 码}

procedure TForm1.Timer1Timer(Sender: TObject);

begin

x:=x-1;

tt:=tt-1;

if x&lt;-160 then

x:=image1.height+20;

tt:=x+80;

image1.Canvas.font.size:=18;

image1.Canvas.font.color:=$1200ffff;

image1.Canvas.TextOut(10,x,'OK 字 幕 移 动 演 示');

image1.Canvas.font.size:=12;

image1.Canvas.font.color:=$120000ff;

image1.Canvas.TextOut(20,x+50,' 字 体 变 色 效 果 演 示');

l:=image1.Canvas.textwidth(' 字 体 变 色 效 果 演 示');

h:=image1.Canvas.textheight(' 字 体 变 色 效 果 演 示');

image1.Canvas.pen.color:=clGreen;

image1.Canvas.moveto(20,h+x+50-2);

image1.Canvas.lineto(20+l,h+x+50-2);

pic.topleft.x:=30;

pic.topleft.y:=tt;

pic.bottomright.x:=pic.topleft.x+100;

pic.bottomright.y:=pic.topleft.y+80;

image1.canvas.stretchdraw(pic,map);

image1.Canvas.pen.color:=clGreen;

image1.Canvas.moveto(0,pic.topleft.y+80);

image1.Canvas.lineto(pic.topleft.x+100,pic.topleft.y+80);

end;

{ 以 下 设 置 动 画 初 值}

procedure TForm1.FormCreate(Sender: TObject);

begin

timer1.enabled:=true;

timer1.Interval:=10;

x:=image1.height+20;

tt:=x+80;

form1.repaint;

image1.Canvas.brush.color:=clGreen;

pic:=Rect(0,0,image1.width,image1.height);

image1.Canvas.FillRect(pic);

pic:=Rect(-1,-1,1,1);

map:=Tbitmap.create;

map.loadfromfile('d:\windows\256color.bmp');

image1.canvas.stretchdraw(pic,map);

end;</pre>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以 上 方 法 及 程 序 在WINDOWS95
系 统 下、DELPHI2.0 环 境 下 调 试 通 过。&nbsp;
<br>&nbsp;
<br>&nbsp;</td>
</body>
</html>

⌨️ 快捷键说明

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