Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Воод чисел с разделителями тысяч [D7, WinXP]


JIuSS ©   (2007-03-20 09:37:00) 

Доброго всем дня!
Подскажите пожалуйста, есть ли такой компонент, который при вводе чисел выполнял бы их форматирование на лету? Конкретно необходимо, что число отображалось с разделителями тысяч. Т.е. пользователь вводит 12345, а в эдите отображается 12'345


TUser   (2007-03-24 08:05:00) [1]

unit uMyIntToStr;

interface

function MyIntToStr (I: integer): string;

implementation
uses SysUtils;

function MyIntToStr (I: integer): string;
var J, K: integer;
   N: boolean;

   _i: integer;
begin
 _i := I;
 result := '';

 N := I < 0;
 if N then I := -I;

 K := 1; J := I div 10;
 while J > 0 do begin
   inc (K);
   J := J div 10;
   end;
 J := K + (K div 3);
 if K mod 3 = 0 then dec (J);
 if N then inc (J);

 SetLength (result, J);

 K := 0;
 repeat
   inc (K);
   if K mod 4 = 0 then
     result[J] := ' '
     else begin
     result[J] := chr(ord('0') + (I mod 10));
     I := I div 10;
     end;
   dec (J);
 until I <= 0;

 if N then result[1] := '-';

 if StringReplace (result, ' ', '', [rfReplaceAll]) <> inttostr (_i) then begin
   writeln;
   writeln ('"', result, '" != "', _i, '"');
   halt;
   end;
end;

end.


GrayFace   (2007-03-23 22:45:00) [2]

http://www.grayface.nm.ru/RSPak.rar
RSSpinEdit.pas


DimaBr   (2007-03-20 10:15:00) [3]


var Flag: boolean;

procedure TForm1.Edit1Change(Sender: TObject);
var S: string;
   x,F,i: integer;
begin
 if Flag then Exit;
 Flag := true;
 s := StringReplace(Edit1.Text,' ','',[rfReplaceAll]);
 x := Length(S);
 i := X-2;
 while I > 0 do begin
   Insert(' ',s,i);
   Dec(i,4);
 end;
 Edit1.Text := S;
 Flag := false;
 Edit1.SelStart := Length(Edit1.Text);
end;


JIuSS   (2007-03-20 09:46:00) [4]


> DimaBr   (20.03.07 09:41) [1]
> Под Delphi написано всё что возможно и половина невозможного.
>

Пробовал найти что-нить - никакого результата. как написать свой эдит, в голову не приходит (в плане вывода числа)


DimaBr   (2007-03-20 09:41:00) [5]

Под Delphi написано всё что возможно и половина невозможного.

Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.


Наверх

Титульная страница Поиск, карта сайта Написать письмо