DisplayFormatを使用して数値の間にスペースを追加するにはどうすればよいですか。
この例のように:
50130301037855000150550010000000131000000132
私はこれが必要です:
5013 0301 0378 5500 0150 5500 1000 0000 1310 0000 0132
誰かアイデアがありますか?ありがとう。
DisplayFormatを使用して数値の間にスペースを追加するにはどうすればよいですか。
この例のように:
50130301037855000150550010000000131000000132
私はこれが必要です:
5013 0301 0378 5500 0150 5500 1000 0000 1310 0000 0132
誰かアイデアがありますか?ありがとう。
DisplayFormatプロパティを使用してそのようにフォーマットすることはできませんが、OnGetTextイベントを使用してこれを実現できます。
たとえば、フィールドが文字列タイプであると想定しています。
function InsertBlankEach4Chars(S: string): string;
begin
Result := '';
while S <> '' do
begin
Result := Result + Copy(S, 1, 4) + ' ';
Delete(S, 1, 4);
end;
Result := Trim(Result);
end;
procedure TMyForm.MyQueryFieldGetText(Sender: TField;
var Text: string; DisplayText: Boolean);
begin
if DisplayText then
Text := InsertBlankEach4Chars(Sender.AsString)
else
Text := Sender.AsString;
end;
免責事項:このコードはブラウザで記述されており、テストされていません。これを時間に敏感なプロセスで使用する場合は、この関数がパフォーマンスを向上させるために最適化されている可能性があることを警告します。
DisplayFormatを使用して答えを見つけました
9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999;0;
皆さんありがとう。
通貨に使用したくない場合は、これを使用してください。
procedure TForm1.Edit1Change(Sender: TObject);
var a :Currency;
begin
ThousandSeparator :=' ';
if edit1.Text <>'' then a:=strtofloat(edit1.Text) else a:=0;
edit2.Text :=FloatToStrF(a,ffNumber, 12, 2);
end;