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的类定义中加两个私有变量:intiX0,iY0;

(5)、响应TImage控件的OnMouseDown和OnMouseMove事件。

void__fastcallTForm1::Image1MouseDown(TObject*Sender,
TMouseButtonButton,TShiftStateShift,intX,intY)
{
iX0=X;
iY0=Y;
}
void__fastcallTForm1::Image1MouseMove
(TObject*Sender,TShiftStateShift,intX,intY)
{
intiDeltaX,iDeltaY;
if(Shift.Contains(ssLeft))
{
iDeltaX=X-iX0;
iDeltaY=Y-iY0;
if(iDeltaY)
Image1->Left+=iDeltaX;
if(iDeltaY)
Image1->Top+=iDeltaY;
}
}

(6)、运行时按住鼠标左键拖动,图象将跟随移动。

(7)、如果通过键盘控制,只需参考鼠标控制的代码,加入键盘控制即可。

(8)、实际应用时,根据需要加入边界限制,保证图象不会被移出显示区域之外。

以上两种方法在本人开发的软件当中多次应用,效果很好。

时间: 2024-10-28 07:45:34

C++Builder中大尺寸图象的显示技巧的相关文章

Windows 8 metro程序分屏显示技巧

  Windows 8 metro程序分屏显示技巧 据悉,Win8新增的分屏显示功能,能让某个Metro应用固定在屏幕左/右侧,相当于同时显示两个全屏程序(包括桌面).那么win8的程序分屏显示功能作为一个新生的事物,很多用户都不熟悉,该如何运用呢? 微软展示了 Windows 8 之一是功能的管理单元.微软,只有高分辨率的 Pc 上提供此功能. Windows 8 metro 程序分屏显示技巧 与一些注册表修改,您可以强制启用快照不受支持的机器上. 在开始屏幕上键入 regedit 并查找以下

Android TextView高级显示技巧实例小结_Android

本文实例总结了Android TextView高级显示技巧.分享给大家供大家参考,具体如下: 1. 自定义字体 可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而Android的 Typeface又使用TTF字体文件来设置字体 所以,我们可以在程序中放入TTF字体文件,在程序中使用Typeface来设置字体:第一步,在assets目录下新建fonts目录,把TTF字体文件放到这里.第二步,程序中调用: TextViewtv = (TextView)findView

Android TextView高级显示技巧实例小结

本文实例总结了Android TextView高级显示技巧.分享给大家供大家参考,具体如下: 1. 自定义字体 可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而Android的 Typeface又使用TTF字体文件来设置字体 所以,我们可以在程序中放入TTF字体文件,在程序中使用Typeface来设置字体:第一步,在assets目录下新建fonts目录,把TTF字体文件放到这里.第二步,程序中调用: TextViewtv = (TextView)findView

网页特效:图片随机显示技巧

技巧|随机|网页|网页特效|显示 图片随机显示是一个应用非常广泛的技巧.比如随机banner的显示,当你进入一个网站时它的banner总是不同的,或者总有内容不同的提示(tips),大家在网上浏览时会经常发现这样的例子.使用这种技术,不但能在一定的空间里放入更多的内容,还可以给人一种经常更新的假象喔. 怎么样心动了吧?其实只要你有一点点html和javascript 的基础,一切都是这么简单.follow me,让我们来看看她随机的奥密. 让我们从一个简单的例子开始吧.平常我们在页面中加入图片都

图片随机显示技巧

图片随机显示是一个应用非常广泛的技巧.比如随机banner的显示,当你进入一个网站时它的banner总是不同的,或者总有内容不同的提示(tips),大家在网上浏览时会经常发现这样的例子.使用这种技术,不但能在一定的空间里放入更多的内容,还可以给人一种经常更新的假象喔. 怎么样心动了吧?其实只要你有一点点html和javascript 的基础,一切都是这么简单.follow me,让我们来看看她随机的奥密. 让我们从一个简单的例子开始吧.平常我们在页面中加入图片都是用来完成.如果我们要随机显示3张

WordPress用户登录框密码的隐藏与部分显示技巧_php技巧

让WordPress登录页的密码框显示最后一个输入的字符在通常情况下,网页的设计者们会将密码输入框中的所有字符隐藏成黑点,以防止有人在背后偷窥输入的密码,如: 这种密码输入模式虽然减少了被偷窥的危险,但是给我们的密码输入带来了很多麻烦,因为我们不知道到底输入了什么字符,所以经常导致输错密码的情况,浪费了很多时间. 可能你也已经注意到,现在智能手机的很多应用中,使用了这样一种密码框处理方式:对用户在密码框中输入的最后一个字符,会先让它显示2-3秒钟,然后再隐藏,这样可以让用户知道刚刚输入了什么字符

解析Javascript中大括号“{}”的多义性_javascript技巧

JS中大括号有四种语义作用 语义1,组织复合语句,这是最常见的 复制代码 代码如下: if( condition ) {   //... }else {   //... } for() {   //... } 语义2,对象直接量声明 复制代码 代码如下: var obj = {     name : 'jack',     age : 23 }; 整个是个赋值语句,其中的{name:'jack',age:23}是个表达式. 语义3,声明函数或函数直接量 复制代码 代码如下: function f

EXCEL窗口在Visual Basic窗口中显示技巧

Visual http://www.aliyun.com/zixun/aggregation/11183.html">Basic是常用的应用软件开发工具之一,由于Visual Basic的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便.因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能.但由于Visual Basic与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题. 一. Visua

php中大括号作用介绍_php技巧

一.不管什么程序,function name(){}, for(){}, -.太多了,不说也知道做什么用了. 二.$str{4}在字符串的变量的后面跟上{}刚大括号和中括号一样都是把某个字符串变量当成数组处理. 三.{$val}这时候大括号起的作用就是,告诉PHP,括起来的要当成变量处理. 复制代码 代码如下: $arr=array(0=>123, 'name'=>'你好'); foreach($array as $k=>$v){ echo "select * from blo