Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Информационный Канал Subscribe.Ru

Ежедневная рассылка сайта Мастера DELPHI

DELPHI.mastak.ru

Выпуск от 21.12.02 09:04

Новые компоненты   |x|
  • ProfDateTimePicker and ProfDBDateTimePicker v.1.3 (245kb) (19.12.02 09:13)
    Замена стандартного VCL компонента TDateTimePicker.
    Особенности:
    Свойства Ctl3D и ParentCtl3D, при установке которых в False элемент управления приобретает flat-стиль.
    Появилось свойство 'Font.Color'.
    Настраиваемый формат отображения даты-времени и еще несколько улучшений и добавлений.

    Новая версия компоненты
    Компонента из раздела: Date and Time: Date and Time
    Источник: www.torry.net   Автор: ProfGrid.Com http://www.profgrid.com
    -= · VCL · DB-aware · Tools · =- [Перевел: Сергей Зинин]

  • Для уменьшения объема писем здесь публикуется не весь список новых компонент, потому заглядывайте и на сайт!
Кое-что из нашей кладовки   |x|
  • FAQ BD Kotka kotka85@mail.ru   (20.12.02 18:08)
    Программа для удобного хранения дайджеста форумов с этого сайта. Есть функция поиска. Многого не ждите, программа писалась "для себя", но я считаю ее удобнее.
    Версия нулевая, пробная.
    »»» Скачать: исходные тексты (426кб) демонстрационный EXE файл (426кб)
Лучшее из нашего FAQ   |x|
Как записать сумму прописью? 123 -> сто двадцать три рубля
Не самый лучший вариант, но работает :)


{ Преобразует трехзначное число в строку }
function ConvertToWord(N : word) : string;
Const
Sot : array[1..9] of string[13] =
('сто','двести','триста','четыреста','пятьсот',
'шестьсот','семьсот','восемьсот','девятьсот');
Des : array[2..9] of string[13] =
('двадцать','тридцать','сорок','пятьдесят',
'шестьдесят','семьдесят','восемьдесят','девяносто');
Edin : array[0..19] of string[13] =
('','один','два','три','четыре','пять','шесть','семь',
'восемь','девять','десять','одиннадцать','двенадцать',
'тринадцать','четырнадцать','пятнадцать',
'шестнадцать','семнадцать','восемнадцать','девятнадцать');
Var S : string;
begin
S:=''; N:=N mod 1000;
if N>99 then begin
S:=Sot[N div 100]+' '; N:=N mod 100;
end;
if N>19 then begin
S:=S+Des[N div 10]+' '; N:=N mod 10! ;
end;
Result:=S+Edin[N];
end;

{ Возвращает сумму прописью }
function CenaToStr(r : Currency) : string;
Var
N,k : longint;
S : string;
begin
N:=trunc(R); S:='';
if N<>0 then begin
if N>999999 then begin
k:=N div 1000000;
S:=ConvertToWord(k);
if ((k-(k div 100)*100)>10) and ((k-(k div 100)*100)<20) then S:=S+' миллионов' else
if (k mod 10)=1 then S:=S+' миллион' else
if ((k mod 10)>=2)and((k mod 10)<=4) then S:=S+' миллиона' else
S:=S+' миллионов';
N:=N mod 1000000;
end;
if N>999 then begin
k:=N div 1000;
S:=S+' '+ConvertToWord(k);
if ((k-(k div 100)*100)>10)and((k-(k div 100)*100)<20) then S:=S+' тысяч' else
if (k mod 10)=1 then begin SetLength(S, Length(S)-! 2); S:=S+'на тысяча'; end else
if (k mod 10)=2 then begin SetLength(S, length(S)-1); S:=S+'е тысячи'; end else
if ((k mod 10)>=3)and((k mod 10)<=4) then S:=S+' тысячи' else
S:=S+' тысяч';
N:=N mod 1000;
end; k:=N;
S:=S+' '+ConvertToWord(k);
if ((k-(k div 100)*100)>10)and((k-(k div 100)*100)<20) then S:=S+' рублей' else
if (k mod 10)=1 then S:=S+' рубль' else
if (k mod 10)=2 then S:=S+' рубля' else
if ((k mod 10)>=3)and((k mod 10)<=4) then S:=S+' рубля' else
S:=S+' рублей';
end;
if trunc(R)<>R then begin
k:=round(frac(R)*100);
S:=S+' '+IntToStr(K);
if ((k-(k div 100)*100)>10)and((k-(k div 100)*100)<20) then S:=S+' копеек' else
if (k mod 10)=1 then begin S:=S+' копейка'; ! end else
if (k mod 10)=2 then begin S:=S+' копейки'; end else
if ((k mod 10)>=3)and((k mod 10)<=4) then S:=S+' копейки' else
S:=S+' копеек';
end else S:=S+' 00 копеек';
S:=Trim(S);
if S<>'' then S[1]:=AnsiUpperCase(S[1])[1];
result:=S;
end;


Еще вариант от Дмитрия (дан в конференции)

unit sumstr;

interface
uses
SysUtils, StrUtils;

function SumToString(Value : String) : string;

implementation
const a:array[0..8,0..9] of string=(
('','один ','два ','три ','четыре ','пять ','шесть ','семь ','восемь ','девять '),
('','','двадцать ','тридцать ','сорок ','пятьдесят ','шестьдесят ','семьдесят ','восемьдесят ','девяносто '),
('','сто ','двести ','триста ','четыреста ','пятьсот ','шес! тьсот ','семьсот ','восемьсот ','девятьсот '),
('тысяч ','тысяча ','две тысячи ','три тысячи ','четыре тысячи ','пять тысячь ','шесть тысячь ','семь тысячь ',
'восемь тысячь ','девять тысячь '),
('','','двадцать ','тридцать ','сорок ','пятьдесят ','шестьдесят ','семьдесят ','восемьдесят ','девяносто '),
('','сто ','двести ','триста ','четыреста ','пятьсот ','шестьсот ','семьсот ','восемьсот ','девятьсот '),
('миллионов ','один миллион ','два миллиона ','три миллиона ','четыре миллиона ','пять миллионов ',
'шесть миллионов ','семь миллионов ','восемь миллионов ','девять миллионов '),
('','','двадцать ','тридцать ','сорок ','пятьдесят ','шестьдесят ','семьдесят ','восемьдесят ','девяносто '),
('','сто ','двести ','триста ','четыреста ','пятьсот ','шестьсот ','семьсот ','восемьсот ','девятьсот '));
b:array[0..9] of string=
('десять ','одинадцать ','двенадцать ','тринадцать ','четырнадцать ','пятьнадцать ','шестьнадцать ',
'семьнадцать ','восемьн! адцать ','девятьнадцать ');
function SumToStrin(Value : String) : string;
var s,t:string;
p,pp,i,k:integer;
begin
s:=value;
if s='0' then t:='Ноль ' else begin
p:=length(s);
pp:=p;
if p>1 then
if (s[p-1]='1') and (s[p]>'0') then begin
t:=b[strtoint(s[p])];pp:=pp-2;end;
i:=pp;
while i>0 do begin
if (i=p-3) and (p>4) then
if s[p-4]='1' then begin
t:=b[strtoint(s[p-3])]+'тысяч '+t;i:=i-2;end;
if (i=p-6) and (p>7) then
if s[p-7]='1' then begin
t:=b[strtoint(s[p-6])]+'миллионов '+t;
i:=i-2;end;
if i>0 then begin k:=strtoint(s[i]);
t:=a[p-i,k]+t;
i:=i-1;end; end;end;
result:=t;
end;
procedure get2str(value:string;var hi,lo:string);
var p:integer;
begin
p:=pos(',',value);
lo:='';hi:='';
if p=0 then p:=pos('.',value);
if p<>0 then delete(value,p,1);
if p=0 then begin hi:=value;lo:='00';end;
if p>length(value) then begin hi:=value;lo:='00';end;
if p=1 then begin hi:='0';lo:=value;end;
if (p>1) and (pthen
begin
hi:=copy(value,1,p-1);
lo:=copy(value,p,length(value));
end;
end;

function sumtostring(value:string):string;
var hi,lo:string;
pr,er:integer;
begin
get2str(value,hi,lo);
if (hi='') or (lo='') then begin result:='';exit;end;
val(hi,pr,er);if er<>0 then begin result:='';exit;end;
hi:=sumtostrin(inttostr(pr))+'руб. ';
if lo<>'00' then begin
val(lo,pr,er);if er<>0 then begin result:='';exit;end;
lo:=inttostr(pr);
end;
lo:=lo+' коп. ';
hi[1]:=AnsiUpperCase(hi[1])[1];
result:=hi+lo;
end;
end.

»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
У нас большой выбор статей   |x|
Комплексный контроль за качеством кода
Статья описывает систему методов и действий, которые могут быть использованы при написании больших проектов на Delphi. Основная цель системы заключается в эффективном повышении качества кода и возможности быстрого поиска и исправления обнаруживаемых ошибок.
Новинки книжного рынка   |x|
Borland C++ Builder 5. Энциклопедия программиста
Borland C++ Builder 5. Энциклопедия программиста написана большим авторским коллективом под руководством Чарли Калверта и Кента Рейсдорфа и продолжает серию книг о C++ Builder, начатую Чарли Калвертом после выхода в свет первой версии этого замечательного продукта. Все без исключения авторы книги имеют не только многолетний опыт создания коммерческих продуктов при помощи систем программирования C++ Builder и Delphi, но и принимали непосредственное участие в написании большого количества книг соответствующей тематики.Книга написана опытными программистами для опытных программистов и этим она резко отличается от подавляющего большинства других книг о C++ Builder (и вообще других книг, посвященных программированию). В ней вы не найдете подробного и планомерного описания интегрированной среды разработки (IDE), перечисления всех стандартных компонентов, их свойств и методов, а также обсуждения тому подобных вопросов. Взамен этого, авторы сосредоточились на о! бсуждении наиболее сложных разделов программирования с использованием C++ Builder, которые обычно обходятся авторами других книг. Характерным является также и то, что в примерах программ, представленных на поставляемом вместе с книгой компакт-диске, авторы наряду с использованием стандартных возможностей библиотеки VCL, зачастую применяют и функции Windows API.
Автор: Калверт Ч.
Другие сайты о DELPHI   |x|
LMD-Tools SE
Более 100 компонентов абсолютно бесплатно!
напр.: LMDLabel с ротацией текста и 3D эффектом,
LMDTTrayIcon,LMDTGlobalHotKey,LMDOneInstance

» Оценка сайта: 2
Опрос населения :)
Стоит ли устраивать встречи программистов в реале? (пирушки :)
»»» Обязательно!
»»» Иногда можно
»»» Я туда не пойду
»»» Категорически нет
Журнал "RSDN Magazine"  |x|

Дорогие друзья! Мы рады представить вам новый совместный проект сайтов www.rsdn.ru, delphi.mastak.ru и www.optim.ru - профессиональный журнал для программистов RSDN Magazine.
Несомненно, ваше мнение о необходимости такого журнала, содержании рубрик и темах отдельных статей поможет сделать журнал более полезным и интересным. Высказать свое мнение, проголосовать или же подписаться вы можете на сайте. Без вашего участия, нам будет трудно сделать правильный журнал!
На сайте выложен анонс пилотного выпуска журнала, вступительное слово от редакции.

Для души

Хокку дня
Только художник
Видит, как наклоняет
Травинку роса.

Афоризмы
Человек, который сидит в чате - человек, конечно, гиблый....

Фраза дня
На ошибках мучатся

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В провинции Нова Скотия запрещается поливать лужайки во время дождя.
В городе Крафорд в Нью Джерси (США) запрещается парковать катера и лодки на лужайках.

И на закуску коротенький анекдот
В автосервисе:
- Машина не едет!
- Прокладку поменять надо!
- Какую?
- Ушастую!
- А где она?
- Между рулем и передним сиденьем!

Фотоприколы.
Начните день с хорошего настроения!
http://delphi.mastak.ru/cgi-bin/prikol.pl?id=879975


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (delphi@mastak.com)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное