2015-03-30 36 views
0

我需要我的标签来读取进度条的百分比。例如,如果进度是13%,我需要我的标签显示13,如果是76%,我需要它来显示76德尔福7 - 如何将整数转换为字符串

Label1.Caption := ... 

我该怎么办?

+0

每当您设置进度栏位置时,也要设置标签说明。 – 2015-03-30 18:54:40

+1

http://docwiki.embarcadero.com/Libraries/en/Vcl.ComCtrls.TProgressBar.Position – 2015-03-30 18:55:43

+3

你知道数学吗? 'CurrentValue/MaxValue'计算与'MaxValue'相关的'CurrentValue'的*百分比*。顺便说一句*百分比*定义为“百分之一”或百分之一(=百分比) – 2015-03-30 18:56:15

回答

2

这听起来像你只是问如何将整数转换为字符串。为此,请使用IntToStr。例如,

Label1.Caption := IntToStr(ProgressBar1.Position); 

这假定MinValue0MaxValue100。否则,计算百分比为:

Percent := MulDiv(
    ProgressBar1.Position - ProgressBar1.MinValue, 
    100, 
    ProgressBar1.MaxValue - ProgressBar1.MinValue 
); 
+0

谢谢,这是我所需要的! – user3211668 2015-03-30 19:41:29

+2

MulDiv真的需要这里吗?不必特定于Windows,在64位世界中已弃用,并且在溢出不太可能成为严重问题的情况下可能有点做作。似乎过早地防御和有点恐龙... – 2015-03-31 00:23:25

+0

@J ...你会如何做到这一点? – 2015-05-30 19:58:43