Замена стандартного VCL компонента TDateTimePicker. Особенности: Свойства Ctl3D и ParentCtl3D, при установке которых в False элемент управления приобретает flat-стиль. Появилось свойство 'Font.Color'. Настраиваемый формат отображения даты-времени и еще несколько улучшений и добавлений.
Новая версия компоненты Компонента из раздела: Date and Time: Date and Time
Источник: www.torry.net
Автор: ProfGrid.Comhttp://www.profgrid.com -= · VCL · DB-aware · Tools · =- [Перевел: Сергей Зинин]
Для уменьшения объема писем здесь публикуется не весь список новых компонент, потому заглядывайте и на сайт!
Программа для удобного хранения дайджеста форумов с этого сайта. Есть функция поиска. Многого не ждите, программа писалась "для себя", но я считаю ее удобнее. Версия нулевая, пробная.
»»» Скачать: исходные тексты (426кб) демонстрационный EXE файл (426кб)
{ Преобразует трехзначное число в строку } 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 thenbegin S:=Sot[N div 100]+' '; N:=N mod 100; end; if N>19 thenbegin 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 thenbegin if N>999999 thenbegin 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 thenbegin 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 thenbegin SetLength(S, Length(S)-!
2); S:=S+'на тысяча'; endelse if (k mod 10)=2 thenbegin SetLength(S, length(S)-1); S:=S+'е тысячи'; endelse 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 thenbegin 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 thenbegin S:=S+' копейка'; !
endelse if (k mod 10)=2 thenbegin S:=S+' копейки'; endelse if ((k mod 10)>=3)and((k mod 10)<=4) then S:=S+' копейки' else S:=S+' копеек'; endelse S:=S+' 00 копеек'; S:=Trim(S); if S<>'' then S[1]:=AnsiUpperCase(S[1])[1]; result:=S; end;
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:='Ноль ' elsebegin p:=length(s); pp:=p; if p>1 then if (s[p-1]='1') and (s[p]>'0') thenbegin t:=b[strtoint(s[p])];pp:=pp-2;end; i:=pp; while i>0 dobegin if (i=p-3) and (p>4) then if s[p-4]='1' thenbegin t:=b[strtoint(s[p-3])]+'тысяч '+t;i:=i-2;end; if (i=p-6) and (p>7) then if s[p-7]='1' thenbegin t:=b[strtoint(s[p-6])]+'миллионов '+t; i:=i-2;end; if i>0 thenbegin 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 thenbegin hi:=value;lo:='00';end; if p>length(value) thenbegin hi:=value;lo:='00';end; if p=1 thenbegin 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 thenbegin result:='';exit;end; hi:=sumtostrin(inttostr(pr))+'руб. '; if lo<>'00' thenbegin val(lo,pr,er);if er<>0 thenbegin result:='';exit;end; lo:=inttostr(pr); end; lo:=lo+' коп. '; hi[1]:=AnsiUpperCase(hi[1])[1]; result:=hi+lo; end; end.
подскожите мастера!!!!!
Такое дело почему вот это не работает:SendMessage(HWND_BROADCAST, WM_SYSCOMMAND,SC_MONITORPOWER,0);Скажите пожалуйста ...
сравнение двух нетипизированных файлов
Подскажите пожалуйста, как сравнить два нетипизированных файла, например с таким содержанием: файл_1: 1 3 2 4 3 3 2 1 ...
Комплексный контроль за качеством кода
Статья описывает систему методов и действий, которые могут быть использованы при написании больших проектов на Delphi. Основная цель системы заключается в эффективном повышении качества кода и возможности быстрого поиска и исправления обнаруживаемых ошибок.
Borland C++ Builder 5. Энциклопедия программиста
Borland C++ Builder 5. Энциклопедия программиста написана большим авторским коллективом под руководством Чарли Калверта и Кента Рейсдорфа и продолжает серию книг о C++ Builder, начатую Чарли Калвертом после выхода в свет первой версии этого замечательного продукта. Все без исключения авторы книги имеют не только многолетний опыт создания коммерческих продуктов при помощи систем программирования C++ Builder и Delphi, но и принимали непосредственное участие в написании большого количества книг соответствующей тематики.Книга написана опытными программистами для опытных программистов и этим она резко отличается от подавляющего большинства других книг о C++ Builder (и вообще других книг, посвященных программированию). В ней вы не найдете подробного и планомерного описания интегрированной среды разработки (IDE), перечисления всех стандартных компонентов, их свойств и методов,
а также обсуждения тому подобных вопросов. Взамен этого, авторы сосредоточились на о!
бсуждении наиболее сложных разделов программирования с использованием C++ Builder, которые обычно обходятся авторами других книг. Характерным является также и то, что в примерах программ, представленных на поставляемом вместе с книгой компакт-диске, авторы наряду с использованием стандартных возможностей библиотеки VCL, зачастую применяют и функции Windows API.
Автор: Калверт Ч.
LMD-Tools SE Более 100 компонентов абсолютно бесплатно! напр.: LMDLabel с ротацией текста и 3D эффектом, LMDTTrayIcon,LMDTGlobalHotKey,LMDOneInstance
» Оценка сайта: 2
Опрос населения :)
Стоит ли устраивать встречи программистов в реале? (пирушки :)
Дорогие друзья! Мы рады представить вам новый совместный проект сайтов www.rsdn.ru, delphi.mastak.ru и www.optim.ru - профессиональный журнал для программистов RSDN Magazine.
Несомненно, ваше мнение о необходимости такого журнала, содержании рубрик и темах отдельных статей поможет сделать журнал более полезным и интересным. Высказать свое мнение, проголосовать или же подписаться вы можете на сайте. Без вашего участия, нам будет трудно сделать правильный журнал!
На сайте выложен анонс пилотного выпуска журнала, вступительное слово от редакции.
Для души
Хокку дня
Только художник Видит, как наклоняет Травинку роса.
Афоризмы
Человек, который сидит в чате - человек, конечно, гиблый....
Фраза дня
На ошибках мучатся
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В провинции Нова Скотия запрещается поливать лужайки во время дождя.
В городе Крафорд в Нью Джерси (США) запрещается парковать катера и лодки на лужайках.
И на закуску коротенький анекдот
В автосервисе: - Машина не едет! - Прокладку поменять надо! - Какую? - Ушастую! - А где она? - Между рулем и передним сиденьем!