![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
разделитель разрядов в StringGrid1 [D7]
Штрихкодер © (2009-08-19 21:22:00)Вечер добрый.
Такая проблемка. Нужно чтобы в одном столбце таблицы StringGrid, в которую вводятся данные целочисленного типа значения отображались с разделением разрядов миллионов и тысяч. Что можете посоветовать?
Штрихкодер (2009-08-20 12:02:00) [1]Loginov Dmitry © , Большое Человеческое Спасибо.
Loginov Dmitry (2009-08-19 23:02:00) [2]> Нужно при каждом нажатии клавиши анализировать введёный
> текст и при необходимости добавлять пробелы? Или можно как-
> то проще?
Имхо проще - свою отрисовку на OnDrawCell. Пример вывода на
канву сетки:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
Value: Integer;
begin
if TryStrToInt(TStringGrid(Sender).Cells[ACol, ARow], Value) then
begin
TStringGrid(Sender).Canvas.FillRect(Rect);
TStringGrid(Sender).Canvas.TextOut(Rect.Left, Rect.Top, Format('%.0n', [Value / 1]));
end;
end;
Anatoly Podgoretsky (2009-08-19 21:55:00) [3]> ЗфдЗфднср (19.08.2009 21:43:03) [3]
Стандартных средсв полно, но это не TStringGrid - любые внешние средства форматирования, например FloatFormat как более наглядное
ЗфдЗфднср (2009-08-19 21:43:00) [4]Anatoly Podgoretsky, я понимаю.
Нужно чтобы пользователь вводил 1237568, а отображалось как 1 237 568. Т.е стандартных средств нет? Нужно при каждом нажатии клавиши анализировать введёный текст и при необходимости добавлять пробелы? Или можно как-то проще?
Anatoly Podgoretsky (2009-08-19 21:34:00) [5]Вообще то StringGrid1 это исключительно текстовый орган ввода и поэтому пробел точно такой же элемент, как скажем 4, то есть можешь в него писать не только цифры
{RASkov} (2009-08-19 21:23:00) [6]Format