Читаем Delphi. Трюки и эффекты полностью

Листинг 7.19.

Отмена быстрого запуска приложения

procedure UnregisterQuickStart();

var

reg: TRegistry;

begin

reg := TRegistry.Create();

reg.RootKey := HKEY_LOCAL_MACHINE;

//Удаляем сведения о программе из реестра

reg.DeleteKey(paths + \'\\' + Application.Title + \'.exe\');

reg.Free();

end;

В приведенных выше листингах значение константы paths равно:

...

const paths = \'SOFTWARE\Microsoft\Windows\CurrentVersion\AppPaths\

Регистрация типов файлов

Теперь рассмотрим вопрос, нередко интересующий программистов, приложения которых должны уметь сохранять и загружать данные из файлов. Логично задавать всем таким файлам одно расширение: получается тип файлов приложения.

Открытие файлов (документов) приложения из самого приложения организовать несложно: достаточно применить диалог открытия файла. Но как заставить, например, Проводник автоматически запускать наше приложение при выборе соответствующего файла? Сделать это тоже несложно: достаточно внести небольшие изменения в раздел реестра HKEY_CLASSES_ROOT.

Итак, перечень операций, которые нужно произвести для регистрации собственного типа файла (пусть, MYDOC).

1. Создать раздел HKEY_CLASSES_ROOT\.mydoc, в параметр (По умолчанию) которого записать имя типа файла, например TricksDelphi. DocumentSample.

2. Создать раздел HKEY_CLASSES_ROOT\, например HKEY_CLASSES_ ROOT\TricksDelphi. DocumentSample. Если в параметр (По умолчанию) этого раздела записать строку, то она будет отображаться в качестве описания типа файла.

3. Если нужно, чтобы для документа использовался определенный значок, необходимо создать раздел HKEY_CLASSES_ROOT\\DefaultIcon, в параметр (По умолчанию) которого записать полный путь ЕХЕ-или DLL-файла, из которого брать значок, и через запятую – номер значка (см. гл. 4).

4. Наконец, для автоматического запуска приложения при выборе файла заданного типа создаем paздeлHKEY_CLASSES_ROOT\<имя_типa>\Shell \Open\Command, в параметр (По умолчанию) которого записываем строку вида <путь_приложения> %1 для передачи имени документа в командной строке.

Пример процедуры, которая производит все вышеперечисленные манипуляции, приводится в листинге 7.20.

...

Листинг 7.20.

Регистрация типа файла

procedure RegisterAppDocuments();

var

reg: TRegistry;

begin

reg := TRegistry.Create();

reg.RootKey := HKEY_CLASSES_ROOT;

//Вносим информацию о нашем типе файла в реестр

//..само расширение

if reg.OpenKey(\'.mydoc\', True) then

begin

reg.WriteString(\'\', \'TricksDelphi.DocumentSample\');

reg.CloseKey();

end;

//..описание типа файла

if reg.OpenKey(\'TricksDelphi.DocumentSample\', True) then

begin

reg.WriteString(\'\', \'Документ TricksDelphi.DocumentSample\');

reg.CloseKey();

end;

//..значок для файлов MYDOC-типа

if reg.OpenKey(\'TricksDelphi.DocumentSample\DefaultIcon\', True)

then

begin

reg.WriteString(\'\', Application.ExeName + \', 1\');

reg.CloseKey();

end;

//..приложение, открывающее MYDOC-документ

if reg.OpenKey(\'TricksDelphi.DocumentSample\Shell\Open\Command\',

True)

then

begin

reg.WriteString(\'\', Application.ExeName + \' %1\');

reg.CloseKey();

end;

reg.Free();

end;

Результат работы этой процедуры показан на рис. 7.10.

Рис. 7.10. Результат регистрации типа файла

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных