📄 bcjq002.txt
字号:
C++ Builder开发者:程序员之家
var how_many_ads = 3;
var now = new Date()
var sec = now.getSeconds()
var ad = sec % how_many_ads;
ad +=1;
首页
| 控件天堂 | 控件使用
| 编程技巧
| 源代码 | 编程工具 |
系统补丁 | 电子书籍 | 技术论坛
| 相关链接
if (ad==1) {document.write(''+'');}
if (ad==2) {document.write(''+'');}
if (ad==3) {document.write(''+'');}
var marqueecontents=''+scroll_text+''
if (document.all)
document.write(''+marqueecontents+'')
function regenerate(){
window.location.reload()
}
function regenerate2(){
if (document.layers){
setTimeout("window.onresize=regenerate",450)
intializemarquee()
}
}
function intializemarquee(){
document.cmarquee01.document.cmarquee02.document.write(marqueecontents)
document.cmarquee01.document.cmarquee02.document.close()
thelength=document.cmarquee01.document.cmarquee02.document.height
scrollit()
}
function scrollit(){
if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){
document.cmarquee01.document.cmarquee02.top-=speed
setTimeout("scrollit()",100)
}
else{
document.cmarquee01.document.cmarquee02.top=marqueeheight
scrollit()
}
}
window.onload=regenerate2
当前位置
:
编程技巧
C++Builder中大尺寸图象的显示技巧
在C++Builder 中 利 用TImage 控 件 可 以 轻 松 地
读 入 并 显 示 图 象, 但TImage 控 件 本 身 不
可 以 接 收 输 入 焦 点, 也 没 带 有 滚 动
条, 在 显 示 超 出 显 示 区 域 范 围 的 大 图
象 时, 需 要 对TImage 控 件 进 行 加 强。 本
文 提 出 两 种 最 容 易 实 现 且 有 效 的 方
法, 满 足 不 同 应 用 的 需 求。
方 法 一: 增 加 滚 动 条。
增 加 滚 动 条 可 以 通 过 将TImage 放 在TScrollBox
控 件 中 来 实 现。 步 骤 如 下:
(1)、 在 窗 体 中 放 置 一 个TScrollBox 控
件, 调 整 好 其 尺 寸。
(2)、 设 置TScrollBox 控 件 的AutoScroll 属 性 为True。
(3)、 在TScrollBox 控 件 是 放 置 一 个TImage 控
件。
(4)、 设 置TImage 控 件 的 属 性:AutoSize 为True,Left
为0,Top 为0。 经 以 上 增 强 之 后, 如 果TImage
的 图 象 比 显 示 窗 口 大, 滚 动 条 会 自 动
出 现, 如 果 图 象 小 于 显 示 窗 口, 滚 动
条 自 动 消 失, 实 现 了 大 图 象 的 浏 览。
方 法 二: 图 象 漫 游。
图 象 漫 游 是 指 不 用 滚 动 条, 通 过 键 盘
或 者 鼠 标 控 制 图 象 的 移 动, 从 而 在 较
小 的 显 示 区 域 内 可 以 浏 览 图 象 的 任
何 部 分。 下 面 以 鼠 标 控 制 为 例 说 明。
(1)、 在 窗 体 中 放 置 一 个TPanel 控 件,
调 整 好 其 尺 寸。
(2)、 在TPanel 控 件 是 放 置 一 个TImage 控
件。
(3)、 设 置TImage 控 件 的AutoSize 属 性 为True,Left
属 性 为0,Top 属 性 为0。
(4)、 在TForm1 的 类 定 义 中 加 两 个 私 有
变 量: int iX0,iY0;
(5)、 响 应TImage 控 件 的OnMouseDown 和OnMouseMove
事 件。
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
iX0 = X;
iY0 = Y;
}
void __fastcall TForm1::Image1MouseMove
(TObject *Sender, TShiftState Shift, int X, int Y)
{
int iDeltaX, iDeltaY;
if(Shift.Contains(ssLeft))
{
iDeltaX = X - iX0;
iDeltaY = Y- iY0;
if(iDeltaY)
Image1->Left += iDeltaX;
if(iDeltaY)
Image1->Top += iDeltaY;
}
}
(6)、 运 行 时 按 住 鼠 标 左 键 拖 动, 图
象 将 跟 随 移 动。
(7)、 如 果 通 过 键 盘 控 制, 只 需 参 考
鼠 标 控 制 的 代 码, 加 入 键 盘 控 制 即
可。
(8)、 实 际 应 用 时, 根 据 需 要 加 入 边
界 限 制, 保 证 图 象 不 会 被 移 出 显 示 区
域 之 外。
以 上 两 种 方 法 在 本 人 开 发 的 软 件 当
中 多 次 应 用, 效 果 很 好。
在C++Builder 中 利 用TImage 控 件 可 以 轻 松 地
读 入 并 显 示 图 象, 但TImage 控 件 本 身 不
可 以 接 收 输 入 焦 点, 也 没 带 有 滚 动
条, 在 显 示 超 出 显 示 区 域 范 围 的 大 图
象 时, 需 要 对TImage 控 件 进 行 加 强。 本
文 提 出 两 种 最 容 易 实 现 且 有 效 的 方
法, 满 足 不 同 应 用 的 需 求。
方 法 一: 增 加 滚 动 条。
增 加 滚 动 条 可 以 通 过 将TImage 放 在TScrollBox
控 件 中 来 实 现。 步 骤 如 下:
(1)、 在 窗 体 中 放 置 一 个TScrollBox 控
件, 调 整 好 其 尺 寸。
(2)、 设 置TScrollBox 控 件 的AutoScroll 属 性 为True。
(3)、 在TScrollBox 控 件 是 放 置 一 个TImage 控
件。
(4)、 设 置TImage 控 件 的 属 性:AutoSize 为True,Left
为0,Top 为0。 经 以 上 增 强 之 后, 如 果TImage
的 图 象 比 显 示 窗 口 大, 滚 动 条 会 自 动
出 现, 如 果 图 象 小 于 显 示 窗 口, 滚 动
条 自 动 消 失, 实 现 了 大 图 象 的 浏 览。
方 法 二: 图 象 漫 游。
图 象 漫 游 是 指 不 用 滚 动 条, 通 过 键 盘
或 者 鼠 标 控 制 图 象 的 移 动, 从 而 在 较
小 的 显 示 区 域 内 可 以 浏 览 图 象 的 任
何 部 分。 下 面 以 鼠 标 控 制 为 例 说 明。
(1)、 在 窗 体 中 放 置 一 个TPanel 控 件,
调 整 好 其 尺 寸。
(2)、 在TPanel 控 件 是 放 置 一 个TImage 控
件。
(3)、 设 置TImage 控 件 的AutoSize 属 性 为True,Left
属 性 为0,Top 属 性 为0。
(4)、 在TForm1 的 类 定 义 中 加 两 个 私 有
变 量: int iX0,iY0;
(5)、 响 应TImage 控 件 的OnMouseDown 和OnMouseMove
事 件。
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
iX0 = X;
iY0 = Y;
}
void __fastcall TForm1::Image1MouseMove
(TObject *Sender, TShiftState Shift, int X, int Y)
{
int iDeltaX, iDeltaY;
if(Shift.Contains(ssLeft))
{
iDeltaX = X - iX0;
iDeltaY = Y- iY0;
if(iDeltaY)
Image1->Left += iDeltaX;
if(iDeltaY)
Image1->Top += iDeltaY;
}
}
(6)、 运 行 时 按 住 鼠 标 左 键 拖 动, 图
象 将 跟 随 移 动。
(7)、 如 果 通 过 键 盘 控 制, 只 需 参 考
鼠 标 控 制 的 代 码, 加 入 键 盘 控 制 即
可。
(8)、 实 际 应 用 时, 根 据 需 要 加 入 边
界 限 制, 保 证 图 象 不 会 被 移 出 显 示 区
域 之 外。以 上 两 种 方 法 在 本 人 开 发 的 软 件 当
中 多 次 应 用, 效 果 很 好。
if (ad==1) {document.write(''+'');}
if (ad==2) {document.write(''+'');}
if (ad==3) {document.write(''+'');}
C++ Builder开发者®
2000年06月01日 站长:唐朝