社区
C++ Builder
帖子详情
是不是TPicture的大小有限制??
windyday
2004-08-06 01:25:49
我本来想用TImage做个图的可是发现里面的TPicture大小有限制。超过了一定的大小就不行了。顺便想问一下TImage->Width和TImage->Picture->Width之间有什么关系??
...全文
117
9
打赏
收藏
是不是TPicture的大小有限制??
我本来想用TImage做个图的可是发现里面的TPicture大小有限制。超过了一定的大小就不行了。顺便想问一下TImage->Width和TImage->Picture->Width之间有什么关系??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yjy1001
2004-08-10
打赏
举报
回复
把Image定义得跟你的最大图片规格一样 假设为2048 * 1024
那么在窗体创建的时候加入如下代码:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Image1->Width = 2048;//第一次定义
Image1->Height = 1024;
BitBlt(Image1->Canvas->Handle, 0, 0, 2048, 1024, Handle, 0,0,0);
Image1->Refresh()
}
然后你就可以直接修改你的Image的大小了
如:
Image1->Width = 700;//需要时的修改
Image1->Height = 300;
但修改的数值不能超过你第一次定义的大小
Image的大小可以说是没有限制的
jiangchun_xn
2004-08-10
打赏
举报
回复
Image1->Picture->Bitmap->Width=newWidth;
Image1->Picture->Bitmap->Height=newHeight;
wcccc1
2004-08-10
打赏
举报
回复
顶一下,
windyday
2004-08-09
打赏
举报
回复
确实是设置问题。谢谢了
xiaoshi0
2004-08-09
打赏
举报
回复
我想你还是在属性的设置上出现了问题,应该不至于有“那么大”的图象,以至于显示不出来吧!
我来看看CB
2004-08-09
打赏
举报
回复
首先跟操作系统有关.
98图像最大的高宽可能为32766。
200/XP图像最大的高宽可能为大一些,具体记不住了。
windyday
2004-08-06
打赏
举报
回复
楼上的谢谢了。如果大图片应该怎么办呢?有什么特别的方法的?
cczlp
2004-08-06
打赏
举报
回复
Image->Width是控件的宽度,Image->Picture->Width是图像的宽度,基本上没什么关系。
我曾经用TImage装载过大图像,结果没有显示,不知到底能装多大图片,是不是与系统内存大小有关。
windyday
2004-08-06
打赏
举报
回复
或许有人不太清楚我问的。我想用TImage根据输入的数值大小输出定制图片。但是如果输入的数值过大。图片k将会不能正常的显示。(超出的部分被截掉了)。
关于绘图的源代码在下面。有点长。干作业的。不好意思^_^
void TForm1::draw(int i)
{
lastRoom = NULL;
lastX = 0;
lastY = 0;
if(i < 0 || i >= buildings.getLength())
//buildings是自己写的一个链表存放大楼的信息
{
return;
}
Building* b = (Building*)buildings.getAt(i);
if(b == NULL)
{
return;
}
Room* r;
Floor* f;
int w = 0;
int h = b->getFloorNum();
//调整TImage的大小
for (int j = 0; j < h; j++)
{
f = b->getFloorAt(j);
if (w < f->getRoomNum())
{
w = f->getRoomNum();
}
}
if((w+1)*75 > 713)
{
//roomMap1是一个TImage默认的大小为713*553
roomMap1->Width = (w+1)*75;//
}
else
{
roomMap1->Width = 713;
}
if(h*60 > 553)
{
roomMap1->Height = h*60;
}
else
{
roomMap1->Height = 553;
}
//把旧的擦去
roomMap1->Canvas->FillRect(Rect(0,0,roomMap1->Width,roomMap1->Height));
//开始画
for(int i=0;i<h;i++)
{
roomMap1->Canvas->TextOut(10,i*60+25,("第"+AnsiString(i+1)+"层"));
for(int j=1;j<=w;j++)
{
r = b->getRoomAt(i,j-1);
if(r == NULL)break;
//根据大小绘制图片
roomMap1->Canvas->Draw(j*75,i*60,roomEU);
roomMap1->Canvas->TextOut(j*75,i*60,r->getID());
}
}
//设置ScrollBar
if((roomMap1->Width - 713)>0)
{
ScrollBar1->Enabled = true;
ScrollBar1->Max = roomMap1->Width - 713;
}
else
{
ScrollBar1->Max = 0;
ScrollBar1->Enabled = false;
}
if((roomMap1->Height - 553) > 0)
{
ScrollBar2->Enabled = true;
ScrollBar2->Max = roomMap1->Height - 553;
}
else
{
ScrollBar2->Max = 0;
ScrollBar2->Enabled = false;
}
}
固定Form的
大小
不被拉大或缩小且也不能拖动【Delphi】
//禁止调整窗体
大小
procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO; //禁止窗体移动 procedure WMSysCommand(var message:TWMSysCommand); message WM_SYSCOMMAND
delphi控件属性大全-详解-简介
Cancel 属性:是否设置成默认的取消按钮,当设置为真的时候(true) 按ESC触发改按钮的事件! Default 属性:是否设置成默认的确认按钮,当设置为真的时候 按ENTER键的时候触发事件 Hint 属性:设置当鼠标在按钮...
胖胖虫关于Delphi中图形图像的自以为是的经验总结
图形
大小
Delphi中虽然插入图像(特别是无压缩的BMP)会导致运行文件变得很大,但是通过InstallShield得到的安装包会自动进行压缩,所以插入图像时一般不用担心其是否压缩过。关于透明 经过观察发现,DELPHI中的一些...
Delphi控件大全
Cancel 属性:是否设置成默认的取消按钮,当设置为真的时候(true) 按ESC触发改按钮的事件! Default 属性:是否设置成默认的确认按钮,当设置为真的时候 按ENTER键的时候触发事件 Hint 属性:设置当鼠标在按钮...
DELPHI DEV 汉化
//把以下文件复制到记事本中,并...//有这个cxLocalizer控件 //主窗体创建的时候 if (fileexists(ExtractFilePath(Application.ExeName) + 'DevChs.ini') = true) then begin cxLocalizer1.FileName := ExtractF...
C++ Builder
13,825
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章