在image中画直线和图形,如下:
Paint的消息或事件;其实比较好的做法是用Image 显示bitmap ;在内存中画好,再拷贝给image显示;大致如下:var
bmp : Tbitmap;
begin
bmp := Tbitmap.Create;
bmp.Width := 100;
bmp.Height := 100;
bmp.Canvas.Brush.Style := bsClear;
bmp.Canvas.Brush.Color := ClRed;
bmp.Canvas.TextOut(0, 0, 'xxxxxxxxxxxxx');
bmp.Canvas.LineTo(100, 100);
Image1.Picture.Bitmap.FreeImage;
Image1.Picture.Bitmap.Assign(bmp);
bmp.Free;
end;这个代码片断定义绘制空间为:bmp.Width := 100;bmp.Height := 100;
但是现在我需要绘制的图很大:200000,200000 大小,
超出了image能显示最大的范围,显示不了了,怎么办?我现在的做法是把image放在窗体中,它的高和宽都设为它能允许的最大值,在这个image中画图形,超出窗体的image部分可拖动窗体的滚动条察看,但是现在我绘的图像放大后要比image能允许显示的最大值要大,显示不全,我该怎么写好啊?类似于vc中的文档视图。 不知道我说清楚了没有。
Paint的消息或事件;其实比较好的做法是用Image 显示bitmap ;在内存中画好,再拷贝给image显示;大致如下:var
bmp : Tbitmap;
begin
bmp := Tbitmap.Create;
bmp.Width := 100;
bmp.Height := 100;
bmp.Canvas.Brush.Style := bsClear;
bmp.Canvas.Brush.Color := ClRed;
bmp.Canvas.TextOut(0, 0, 'xxxxxxxxxxxxx');
bmp.Canvas.LineTo(100, 100);
Image1.Picture.Bitmap.FreeImage;
Image1.Picture.Bitmap.Assign(bmp);
bmp.Free;
end;这个代码片断定义绘制空间为:bmp.Width := 100;bmp.Height := 100;
但是现在我需要绘制的图很大:200000,200000 大小,
超出了image能显示最大的范围,显示不了了,怎么办?我现在的做法是把image放在窗体中,它的高和宽都设为它能允许的最大值,在这个image中画图形,超出窗体的image部分可拖动窗体的滚动条察看,但是现在我绘的图像放大后要比image能允许显示的最大值要大,显示不全,我该怎么写好啊?类似于vc中的文档视图。 不知道我说清楚了没有。
解决方案 »
- ImageEnMView
- TWWDBGRID的超难问题!显示的一列怎么根据列的值设置不同的Alignment属性?
- 我通过Visual source safe 下载的delphi 程序为什么设置了断点还能运行断点以后的程序(确定断点肯定被执行)
- 是不是我把问题发错版了?SOCKET的东西啊.
- 如何使用户安装我的程序后自动配置数据库呢?
- 有无像windows浏览文件夹树的控件
- 动态Combobox的初始值怎么设置?
- 高手帮忙啊!如何实现一个搜索功能
- VCL中ADO数据集组件的问题
- 我是弱智,帮忙看一下这个问题。
- 请问用递归法删除文件夹和此文件夹下所有子目录和文件的方法!小弟拜谢!
- 又拖欠民工工资了,各位给点意见,看看能否把工资要回来???帮兄弟一把
可见部分.
把Image 放在一个 TScrollBox 里就可以了。但如果图片真的大的变态
那要自己写很多方法来处理显示与滚动了。也不能老想用控件来编程。