• 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API

在TImage的画布上绘图,怎么让画出窗体边界的线能通过滚动条显示出来?

snowfog 2004-10-03 09:41:00
如题
...全文
146 点赞 收藏 6
写回复
6 条回复
gemouzhi 2004年10月03日
在TImage的画布上绘图,怎么让画出窗体边界的线能通过滚动条显示出来?

在mousedown的事件自定义标志里,控制image的大小,当然事件触发在mousemove
回复 点赞
WGYKING 2004年10月03日
在头部加入:
Str := 'WGYKINGWGYKINGWGYKINGWGYKINGWGYKINGWGYKINGWGYKINGWGYKINGWGYKINGWGYKINGWGYKINGWGYKINGWGYKINGWGYKINGWGYKING';
if Image1.Canvas.TextWidth(Str) >= Image1.Width then
begin
Image1.Picture.Graphic.Width := Image1.Canvas.TextWidth(Str) + 4;
Image1.SetBounds(Image1.Left, Image1.Top,Image1.Picture.Graphic.Width , Image1.Height);
end;

改变长度,高度类似
不知是否有好的办法
回复 点赞
WGYKING 2004年10月03日
TImage是alClient就没有效果了
这样的话TImage的大小就和容器尺寸一样大了
动态改变TImage的大小
回复 点赞
WGYKING 2004年10月03日
procedure TForm1.Button1Click(Sender: TObject);
var
Rect: TRect;
begin
with Image1 do
begin
Rect := Canvas.ClipRect;
Canvas.Brush.Color := clBtnFace;
Canvas.FillRect(Rect);
Canvas.Font.Color := clBlack;
Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, 'WGYKING');

Canvas.Pen.Color := clWhite;
Canvas.MoveTo(Rect.Left, Rect.Top);
Canvas.LineTo(Rect.Right + 1, Rect.Top);

Canvas.MoveTo(Rect.Left, Rect.Top - 1);
Canvas.LineTo(Rect.Left, Rect.Bottom);

Canvas.Pen.Color := clBlack;
Canvas.MoveTo(Rect.Right - 1, Rect.Top);
Canvas.LineTo(Rect.Right - 1, Rect.Bottom);

Canvas.MoveTo(Rect.Left, Rect.Bottom - 1);
Canvas.LineTo(Rect.Right, Rect.Bottom - 1);
end;
end;
要么我没有理解你的意思
我这里没有问题
回复 点赞
snowfog 2004年10月03日
动态改变TImage大小不起作用。
我的TImage还是alClient呢,但窗体变化大小时都不跟着变化,更别说滚动条了。这是为什么呢?
回复 点赞
WGYKING 2004年10月03日
动态改变TImage大小可以么?
回复 点赞
发动态
发帖子
Delphi
创建于2007-08-02

1469

社区成员

26.2w+

社区内容

Delphi 开发及应用
社区公告
暂无公告