有没有办法格式化TNumberBox.text?
Is there a way to format TNumberBox.text?
我希望对 TNumberBox 的显示文本进行格式化,例如。当值 = 0 时显示 'zero',显示千位分隔符等
有办法吗?
您可以在OnPaint()
活动中进行如下操作:
procedure TForm14.NumberBox1Paint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
var
nb: TNumberBox;
rf: TRectF;
tx: string;
begin
nb := Sender as TNumberBox;
if nb.Value = 0 then
tx := 'zero'
else
tx := format('%.0n',[nb.Value]);
rf := ARect;
Canvas.ClearRect(ARect, TAlphaColors.Lightpink);
rf.inflate(-4, -2);
Canvas.Fill.Color := TAlphaColors.Black;
Canvas.FillText(rf, tx, False, 1, [], TTextAlign.Leading, TTextAlign.Center);
end;
我希望对 TNumberBox 的显示文本进行格式化,例如。当值 = 0 时显示 'zero',显示千位分隔符等
有办法吗?
您可以在OnPaint()
活动中进行如下操作:
procedure TForm14.NumberBox1Paint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
var
nb: TNumberBox;
rf: TRectF;
tx: string;
begin
nb := Sender as TNumberBox;
if nb.Value = 0 then
tx := 'zero'
else
tx := format('%.0n',[nb.Value]);
rf := ARect;
Canvas.ClearRect(ARect, TAlphaColors.Lightpink);
rf.inflate(-4, -2);
Canvas.Fill.Color := TAlphaColors.Black;
Canvas.FillText(rf, tx, False, 1, [], TTextAlign.Leading, TTextAlign.Center);
end;