Delphi內有沒有顯示百分比的感應控件? 在線等!

JonnySun 2004-11-18 10:45:59
Delphi內有沒有顯示百分比的感應控件?

某字段的數據是0.2, 在編輯框內(類似TDBEdit)顯示20%.
如果是DevExpress數據感應控件能實現則更好!

...全文
145 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luckta 2004-11-19
  • 打赏
  • 举报
回复
procedure TfrmInsSalesInvoice.OnFieldGetText(Sender: TField;
var Text: string; DisplayText: Boolean);
begin
Text := CurrToStr(Sender.AsCurrency * 100) + ' %';
end;

procedure TfrmInsSalesInvoice.OnFieldSetText(Sender: TField;
const Text: string);
var
S, F: string;
C: Currency;
begin
if Pos('%', Text) = 0 then
F := Trim(Text) + ' %'
else
F := Text;

S := Trim(LeftStr(F, Pos('%', F) - 1));
if (S = '') or (not TryStrToCurr(S, C)) then
begin
ShowMessage('Invalid value ' + QuotedStr(F));
Abort;
end
else
begin
TryStrToCurr(S, C);
Sender.AsCurrency := RoundTo(C / 100, -2);
end;

end;



procedure TfrmInsSalesInvoice.BindPercentField(aField: TField);
begin
aField.OnGetText := Self.OnFieldGetText;
aField.OnSetText := Self.OnFieldSetText;
end;
aiirii 2004-11-18
  • 打赏
  • 举报
回复
MaskEdit1 ???
JonnySun 2004-11-18
  • 打赏
  • 举报
回复

各位大俠:
謝謝您們的回復!
寫代碼當然行的,我的問題是: Delphi內有沒有顯示百分比的感應控件?

aiirii 2004-11-18
  • 打赏
  • 举报
回复
>>那还不如写在 onchange
試下再說, 應該有問題的
huanyi 2004-11-18
  • 打赏
  • 举报
回复
自己写代码实现吧,在field的onchange事件中
dext 2004-11-18
  • 打赏
  • 举报
回复
那还不如写在

procedure TForm1.DBEdit1Change(Sender: TObject);
begin
end;
aiirii 2004-11-18
  • 打赏
  • 举报
回复
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if Pos('%', edit1.Text) = 0 then
Edit1.Text := Format('%.2f', [StrToFloatDef(edit1.text, 0)]);
end;
wxjh 2004-11-18
  • 打赏
  • 举报
回复
我自己的控件包里面有这个,不过没有数据榜定,如果需要,联系我,我只能给你dcu单元

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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