delphi 中有没有办法知道label.caption是否装完了字符串?(字符串可能比较长)

我有个label2和Image2:label2.caption:=str;Image2.Width:=label2.Width;Image2.Height:=label2... 我有个label2和Image2:
 label2.caption:=str;
 Image2.Width := label2.Width;
Image2.Height:= label2.Height;
但是label2,可能要装载很多很大的字符,导致Image2的
宽和高与label2不一样
可能是程序中label2还没有装完字符,就执行了
Image2.Width := label2.Width;
Image2.Height:= label2.Height;
导致Image2的宽和高与label2的宽和高不一样
我用了sleep(10000)也不行。晕
有没有办法知道label2是否装完了字符(字符可能比较多)?
展开
 我来答
linyangou
2011-12-13 · TA获得超过158个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:199万
展开全部
Delphi里面的语句都是逐条执行的吧,试验下就知道了。
1、Image2.Width := label2.Width;
Image2.Height:= label2.Height; 先把这两条去掉,单独执行label2.caption:=str; 查看下执行完成后的label2.Width值是多少。
2、执行 label2.caption:=str;
 Image2.Width := label2.Width;
Image2.Height:= label2.Height; 在第二句设断点,看一下此时的label2.Width 是否和 前面的label2.Width一样。(一般来说是一样的)
3、如果你觉得真的是字符太多的问题,可以将字符拆分开来多次载入,再试一下。
追问
首先谢谢您!你的方法我试过,没用。label2是AutoSize的
第一句 label2.caption:=str;
第二句 Image2.Width := label2.Width;
第三句 Image2.Height:= label2.Height;
第一句还没有装完str,也就是label2还没自动变成合适的宽和高,程序就执行了第二句、第三句
遒劲且威武的小白桦s
2011-12-13 · TA获得超过115个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:192万
展开全部
加个 timer 控件 默认Enabled设置为false

label2.caption:=str;
timer1.Enabled := true; //赋值完以后激活timer

procedure TForm1.Timer1Timer(Sender: TObject);
begin
timer1.Enabled := false;
image1.Width := label1.Width;
image1.Height := label1.Height;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lowewsw
2011-12-13
知道答主
回答量:12
采纳率:0%
帮助的人:4.6万
展开全部
LABEL里有个ONDRAGOVER事件,
如果你非要那样的效果,可以试一下这个事件!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3ff0001
2011-12-14 · 超过10用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:7万
展开全部
可以在设置宽度和高度前增加一行代码:
label2.autosize:=false;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式