Валерий Борисок - Delphi. Трюки и эффекты

Тут можно читать онлайн Валерий Борисок - Delphi. Трюки и эффекты - бесплатно ознакомительный отрывок. Жанр: Программы. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Delphi. Трюки и эффекты
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.11/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Валерий Борисок - Delphi. Трюки и эффекты краткое содержание

Delphi. Трюки и эффекты - описание и краткое содержание, автор Валерий Борисок, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

«Delphi. Трюки и эффекты», как и все издания данной серии, адресована тем, кто хочет научиться делать с помощью уже знакомых программных пакетов новые, интересные вещи. В первой части книги многое говорится о среде разработки Delphi (самых последних версий) и программировании на языке Object Pascal. Благодаря этому издание подходит и новичкам, и начинающим программистам. Вторая (основная) часть книги описывает удивительные возможности, скрытые в языке, и на примерах учит читателя программистским фокусам – от «мышек-невидимок» и «непослушных окон» до воспроизведения МРЗ и управления офисными программами Word и Excel из приложений Delphi. Купив эту книгу, вы пройдете непростой путь к вершинам программистского мастерства весело и интересно.

Delphi. Трюки и эффекты - читать онлайн бесплатно ознакомительный отрывок

Delphi. Трюки и эффекты - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Валерий Борисок
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Прочие системные пути

В Windows существует ряд других системных путей, которые так или иначе могут пригодиться. Определяются они не менее просто, чем пути к системным папкам (листинг 4.14).

...

Листинг 4.14. Определение прочих системных путей

function GetSpecialDir(dirtype: Integer): String;

var

buffer: String;

begin

SetLength(buffer, MAX_PATH + 1);

SHGetSpecialFolderPath(0, PAnsiChar(buffer), dirtype, False);

GetSpecialDir := buffer;

end;

Здесь используется функция командной оболочки файловой системы (Windows Shell) SHGetSpecialFolderPath, ее объявление находится в модуле ShlObj. Среди параметров этой функции самыми значимыми для нас (кроме буфера длиной минимум МАХРАТН символов для помещения в него пути) являются два последних. Третий параметр функции SHGetSpecialFolderPath используется для указания того, расположение какой именно папки нас интересует. Если четвертый параметр функции SHGetSpecialFolderPath не равен False, то запрошенная папка будет создана, если до этого она не существовала.

Пример использования функции GetSpesialDir для составления списка (в элементе управления ListView) некоторых системных путей приведен в листинге 4.15. Из него вы также сможете узнать имена целочисленных констант, идентифицирующих некоторые папки.

...

Листинг 4.15.

Использование функции GetSpecialDir

procedure TForm3.Button1Click(Sender: TObject);

var

item: TListItem;

begin

lvwPathes.Clear;

//Определение путей некоторых системных каталогов

//..Рабочий стол

item := lvwPathes.Items.Add();

item.Caption := \'Рабочий стол\

item.SubItems.Insert(0, GetSpecialDir(CSIDL_DESKTOPDIRECTORY));

//..Избранное

item := lvwPathes.Items.Add();

item.Caption := \'Избранное\

item.SubItems.Insert(0, GetSpecialDir(CSIDL_FAVORITES));

//..Шрифты

item := lvwPathes.Items.Add();

item.Caption := \'Шрифты\

item.SubItems.Insert(0, GetSpecialDir(CSIDL_FONTS));

//..Мои документы

item := lvwPathes.Items.Add();

item.Caption := \'Мои документы\

item.SubItems.Insert(0, GetSpecialDir(CSIDL_PERSONAL));

//..Последние документы

item := lvwPathes.Items.Add();

item.Caption := \'Последние документы\

item.SubItems.Insert(0, GetSpecialDir(CSIDL_RECENT));

//..История

item := lvwPathes.Items.Add();

item.Caption := \'История\

item.SubItems.Insert(0, GetSpecialDir(CSIDL_HISTORY));

//..Отправить

item := lvwPathes.Items.Add();

item.Caption := \'Отправить\

item.SubItems.Insert(0, GetSpecialDir(CSIDL_SENDTO));

//..Меню Пуск

item := lvwPathes.Items.Add();

item.Caption := \'Пуск\

item.SubItems.Insert(0, GetSpecialDir(CSIDL_STARTMENU));

//..Меню Программы

item := lvwPathes.Items.Add();

item.Caption := \'Программы\

item.SubItems.Insert(0, GetSpecialDir(CSIDL_PROGRAMS));

//..Меню Автозагрузка

item := lvwPathes.Items.Add();

item.Caption := \'Автозагрузка\

item.SubItems.Insert(0, GetSpecialDir(CSIDL_STARTUP));

//..Папка с шаблонами документов

item := lvwPathes.Items.Add();

item.Caption := \'Шаблоны\

item.SubItems.Insert(0, GetSpecialDir(CSIDL_TEMPLATES));

end;

Результат работы процедуры из листинга 4.14 приводится на рис. 4.3.

Рис. 4.3. Прочие системные пути Windows

В приведенной в листинге 4.15 процедуре определены не все пути, доступные с использованием функции SHGetSpecialFolderPath. Дело в том, что существует ряд виртуальных (не существующих реально на диске) папокМой компьютер, Принтеры, Сетевое окружение и т д.

Для некоторых упоминаемых в листинге 4.15 папок есть также аналогичные папки, содержимое которых доступно всем пользователям:

• CSIDL_COMMON_DESKTOPDIRECTORY – содержимое этой папки отображается на Рабочем столе всех пользователей;

• CSIDL_COMMON_DOCUMENTS – общие документы;

• CSIDL_COMMON_FAVORlTES—общие элементы папки Избранное;

• CSIDL_COMMON_PROGRAMS – общие для всех пользователей программы (пункт Программы меню Пуск);

• CSIDL_COMMON_STARTMENU – общие элементы, отображаемые вменю Пуск;

• CSIDL_COMMON_STARTUP – общие элементы меню Автозагрузка;

• CSIDL_COMMON_TEMPLATES – папка с общими для всех пользователей шаблонами документов.
...

Примечание

Большинство из перечисленных выше путей определяются только в системах Windows на ядре NT, но не в Windows 95/98/Ме.

Определение и установка текущей папки

Во время работы каждого приложения для него запоминается папка, которая считается текущей (для этого приложения). При грамотном управлении текущей папкой удобно использовать рассмотренные далее относительные пути.

Для определения текущей папки приложения можно воспользоваться функцией GetCurrentDir, приведенной в листинге 4.16.

...

Листинг 4.16.

Определение текущей папки

function GetCurrentDir(): String;

var

len: Integer;

buffer: String;

begin

SetLength(buffer, MAX_PATH + 1);

len := GetCurrentDirectory(MAX_PATH, PAnsiChar(buffer));

GetCurrentDir := Copy(buffer, 1, len);

end;

Функция определения пути текущей папки основана на применении соответствующей API-функции GetCurrentDirectory. Вполне естественно, что она имеет пару – функцию для задания текущего каталога SetCurrentDirectory. Объявление этой функции:

...

function SetCurrentDirectory(lpPathName: PChar): BOOL; stdcall;

Функция принимает путь папки и возвращает ненулевое значение в случае успешного выполнения.

Преобразование путей

Рассмотрим несколько функций, которые могут пригодиться, если возникнет необходимость преобразования путей. Имеется в виду прежде всего преобразование имен файлов в формат MS-DOS и обратно. Этот вид преобразования наглядно продемонстрирован на рис. 4.4 (верхняя часть формы).

Иногда оказывается полезным представлять пути относительно какой-нибудь папки, но не относительно корневого каталога диска. Например, представьте, что вы разрабатываете приложение, документы которого, являющиеся неделимыми для пользователя, могут фактически состоять из большого количества файлов, расположенных в разных папках (Images, Movies, Embed). Сами папки расположены в том же каталоге, где и основной файл документа, или ниже по иерархии (во вложенных папках). Как добиться того, чтобы при копировании приложения со всеми нужными папками в другое место (на другой диск или компьютер, в другую папку) его по-прежнему можно было открыть, при этом рассчитывая, что в папках Images, Movies и Embed содержится не только нужная информация. Последнее говорит о том, что приложение должно «знать», какие файлы и в каких папках ему действительно необходимы. В таком случае пригодится относительный путь, который несет в себе информацию о количестве и направлении переходов из каталога, заданного в качестве корневого, для того чтобы мы смогли найти указанный в этом пути файл или папку.

Преобразование из абсолютного в относительный путь и наоборот продемонстрировано на рис. 4.4 (нижняя часть формы). При этом в качестве исходного пути берется содержимое текстового поля Исходный длинный путь, а в качестве пути папки для построения относительного пути – содержимое поля Текущая папка.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Валерий Борисок читать все книги автора по порядку

Валерий Борисок - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Delphi. Трюки и эффекты отзывы


Отзывы читателей о книге Delphi. Трюки и эффекты, автор: Валерий Борисок. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий