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是否装完了字符(字符可能比较多)? 展开
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是否装完了字符(字符可能比较多)? 展开
4个回答
展开全部
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、如果你觉得真的是字符太多的问题,可以将字符拆分开来多次载入,再试一下。
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还没自动变成合适的宽和高,程序就执行了第二句、第三句
展开全部
加个 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;
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
LABEL里有个ONDRAGOVER事件,
如果你非要那样的效果,可以试一下这个事件!
如果你非要那样的效果,可以试一下这个事件!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以在设置宽度和高度前增加一行代码:
label2.autosize:=false;
label2.autosize:=false;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询