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

snowfog 2004-10-03 09:41:00
如题
...全文
173 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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大小可以么?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧