Описание у службы Windows
Метода для установки описания у TService я не нашел, поэтому ничего другого не оставалось, как добавить описание службе самому.
Оказалось, у MS Windows для этого есть специальная функция — ChangeServiceConfig2 (в advapi32.dll), которая изменяет дополнительные параметры конфигурации службы. Вместо реализации вызова ChangeServiceConfig2 на Delphi я сделал проще – в событии TService.ServiceAfterInstall записал описание службы напрямую в реестр:
procedure TxyzSvc.ServiceAfterInstall(Sender: TService);
begin
With TRegistry.Create(KEY_READ or KEY_WRITE) do
Try
RootKey := HKEY_LOCAL_MACHINE;
If OpenKey(‘SYSTEMCurrentControlSetServices’ + Name, False) then
begin
WriteString(‘Description’, ‘XYZ Service’);
CloseKey;
end;
Finally
Free;
End;
end;
РАО N 2?
На днях по электронной почте пришло УВЕДОМЛЕНИЕ от ФГУП МНИИ «Интеграл», о том что
«Согласно Федеральному закону № 77-ФЗ «Об обязательном экземпляре документов» от 29.12.1994 г производители программ для ЭВМ и баз данных обязаны доставлять в МНИИ «Интеграл» один обязательный бесплатный экземпляр программ.«
Штрафы за непредоставление, кстати (в письме не указано), для юрлиц от 10000 до 20000 тысяч рублей.
Я тут же открыл этот закон на сайте Консультанта, и обнаружил вот что.
Статья 5. Виды документов, входящих в состав обязательного экземпляра
1.
…программы для электронных вычислительных машин и базы данных на материальном носителе;
К примеру, мы не поставляем свое ПО на материальных носителях.
Кстати, если сравнить этот текст с текстом, размещенным на сайте «Интеграла»,
http://indepo.ru/laws_1.htm
то кто-то из двух врет. Потому что Эта же 5-ая статья в редакции Интеграла содержит отличное описание пункта об электронных изданиях:
электронные издания — программы для электронных вычислительных машин и базы данных, а также электронные документы, прошедшие редакционно-издательскую обработку, имеющие выходные сведения, тиражируемые и распространяемые на машиночитаемых носителях;
(подчеркнуто то, чего нет на Консультанте и других сайтах, цитирующих закон в самой последней редакции.)
Отсюда впечатление, что некто там встрепенулся, что можно заработать денег, штрафуя российских разработчиков ПО.
Я мог бы прислать наши «экземпляры», но подчеркиваю, что мы их не распространяем на материальных носителях, и кроме того, наше ПО требует регистрации и защищено от взлома. И такого ПО сейчас 99% (исключая бесплатное).
Сам закон написан безобразно (в т.ч. юридически, много к чему есть придраться), и смысл его от меня ускользает. Есть же ФИПС, в конце-концов.
p.s. Например, Статья 13, пункт 1 — «Производители документов доставляют в МНИИ «Интеграл» один обязательный экземпляр программ для электронных вычислительных машин и баз данных». А в Статье 1 написано, что документ — это «материальных носитель с зафиксированной на нем в любой форме информацией….». Там же в определении «производитель документов» ничего про ПО не написано. Там даже «Электронные издания — документы, …которые … тираюируются и распространяются на машинночитаемых носителях».
Ну и самое главное: «Настоящий Федеральный закон не распространяется на …. электронные документы, распространяемые исключительно в сетевом режиме»
ImageEn – кто не успел, тот опоздал
Но теперь халява закончилась. Права на ImageEn переданы новозеландской компании Xequte Software и библиотека снова стала платной. Вот такой поворот в условиях лицензии. Взглянув на список продуктов компании (сплошь утилиты для работы с картинками, видео и музыкой), становится очевидной причина смены хозяина. Предполагаю, что для разработки многих продуктов компании используется ImageEn и, после того как ее автор (итальянец Fabrizio) утратил к библиотеке коммерческий интерес, ей просто не дали умереть.
По заявлению представителя компании Xequte Software они планируют развивать библиотеку и даже задумываются над 64-х битной версией, а над исходными кодами ImageEn по-прежнему трудится Fabrizio.
Со сменой хозяина и лицензии изменились и цены. У Xequte Software лицензия на исходные коды ImageEn и подписка на их бесплатное 12-ти месячное обновление стоит 299.50$ (на одного разработчика). Эта цена почти вдвое больше, чем у HiComponents (175$)! А лицензия на скомпилированную версию ImageEn не продается(у HiComponents она стоила 59$), но её владельцы могут приобрести новую версию по сниженной цене – за 249.50$.
Если Xequte Software снова не выложит бесплатно скомпилированную версию ImageEn, то тот, кто не успел её скачать, попал на деньги.
Links for 2011-05-12 [del.icio.us]
Создание многоязыкового инсталлятора для Windows с помощью WiX
Блог компании Фаматек.
Links for 2011-05-12 [del.icio.us]
- Создание многоязыкового инсталлятора для Windows с помощью WiX
Блог компании Фаматек.
FastReport. Вывод данных в внизу страницы
Первая моя мысль была положить SubReport на PageFooter. Но такое решение естественно не сработало, и я стал пробовать управлять положением бэнда на странице с помощью скрипта. В результате я нашел решение данного вопроса с помощью дополнительного бэнда и одной строчки скрипта. Поясню на примере.
Например, вверху отчета нам нужно вывести какую-то информацию (добавляем на страницу бэнд MasterData1) и внизу отчета нам нужно вывести какую-то информацию (добавляем на страницу бэнд MasterData2). А между ними положим еще один бэнд (MasterData3), который заполнит пространство между MasterData1 и MasterData2. Его не будем подключать к данным, а просто укажем количество строк RowCount = 1.
MasterData3.Height := Engine.PageHeight — MasterData1.Height * MasterData1.RowCount – MasterData2.Height * MasterData2.RowCount
т.е., от высоты страницы отнимаем высоту бэндов с данными. Высоту бэндов с данными вычисляем следующим образом: высоту одной строки бэнда умножаем на количество строк, которые будут в нём выводиться. У меня здесь в скрипте количество строк – это RowCount, а в примере отчета для моего коллеги я использовал количество строк в запросе (DataSet.RecordCount).
Вот такими нехитрыми манипуляциями мне удалось решить поставленную задачу.