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

Интервал:

Закладка:

Сделать

Теперь несколько слов о возвращаемых функцией CopyProgressFunc значениях (в нашем примере используется только одно из четырех доступных значений). Список целочисленных констант, значения которых может возвращать функция CopyProgressFunc, таков:

• PROGRESS_CONTINUE – продолжать процесс копирования;

• PROGRESS_CANCEL – отмена копирования;

• PROGRESS_STOP – остановка копирования (можно возобновить);

• PROGRESS_QUIET – при возврате этого значения система перестает вызывать функцию CopyProgressFunc.

Внешний вид формы при копировании большого файла приводится на рис. 4.9.

Рис. 4.9. Копирование большого файла

Только не нужно забывать останавливать копирование при закрытии приложения или в прочих экстренных ситуациях. Так, если не предусмотреть обработку события CloseQuery для формы (рис. 4.9), то закрыть ее в ходе копирования обычным способом не удастся. Зато после завершения копирования (или при нажатии кнопки Отмена)форма тут же исчезнет. Странное поведение, не правда ли? Вариант более-менее адекватной реакции на закрытие формы приводится в листинге 4.34.

...

Листинг 4.34.

Остановка копирования при закрытии формы

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose:

Boolean);

begin

//Останавливаем процесс копирования

bCancelCopy := True;

end;

Как вариант, можно запретить закрытие формы (установить CanClose в False), не останавливая копирования.

В том случае, когда копируется несколько файлов, можно ввести дополнительный элемент управления Progress Ваг,отображающий ход всего процесса копирования. Только при этом придется заранее определить общий размер копируемых файлов.

Определение значков, ассоциированных с файлами

Рассмотрим еще один интересный пример, позволяющий получить значок файла, показываемый, например, в Проводнике Windows. Приведенная в листинге4.35 функция принимает в качестве параметра путь файла и флаг, определяющий, какой нужен значок – малый или большой. Она возвращает дескриптор экземпляра значка, ассоциированного с файлом. Реализация функции находится в модуле ShellFunctions, расположенном на диске, прилагаемом к книге, в папке с названием раздела.

...

Листинг 4.35.

Определение значка файла

function GetFileIcon(filename: String; small: Boolean = False ): HICON;

var

info: SHFILEINFO;

flags: Cardinal;

begin

flags := SHGFI_ICON;

if small then

//Получение малого значка

flags := flags or SHGFI_SMALLICON

else

//Получение большого значка

flags := flags or SHGFI_LARGEICON;

ZeroMemory(Addr(info), SizeOf(info));

//Получение значка

SHGetFileInfo(PAnsiChar(filename), 0, info, SizeOf(info), flags);

GetFileIcon := info.hIcon;

end;

Используемая в листинге 4.35 API-функция SHGetFilelnfo объявлена в модуле ShellApi. Там же объявлена структура SHFILEINFO.

В листинге 4.36 приведен пример использования функции GetFilelcon: здесь полученные значки сохраняются в элементах управления Image(по одному для большого и малого значков).

...

Листинг 4.36.

Пример получения значка заданного файла (или папки)

procedure TForm1.cmbLoadIconClick(Sender: TObject);

begin

//Определение большого и малого значков файла

imgLarge.Picture.Icon.Handle := GetFileIcon(txtFile.Text);

imgSmall.Picture.Icon.Handle := GetFileIcon(txtFile.Text, True);

end;

Пример определения значка файла приводится на рис. 4.10.

Рис. 4.10. Определение значка, ассоциированного с файлом

На самом деле функция из листинга 4.35 может определять значки не только файлов, но и каталогов, дисков и виртуальных папок ( Мой компьютер, Рабочий стол, Панель управленияи т. д.). Правда, в последнем случае используемая в листинге API-функция SHGetFilelnfo требует первый параметр специального вида (не строка). Частично работа с таким представлением путей рассмотрена в подразд. «Окно выбора папки» разд. 2.4.

В заключение скажем несколько слов о прочих полезных возможностях API-функции SHGetFileInf о. Недаром она называется не SHGetFilelcon или что-то подобное: она позволяет получить гораздо больше информации, нежели просто значок файла. Эта информация зависит от набора флагов, передаваемых в функцию в качестве последнего параметра. Но сначала рассмотрим, из каких полей состоит структура SHFILEINFO, потому что результат (за редким исключением) помещается именно в ее поля:

• hIcon (типа HICON) – дескриптор значка заданного путем объекта (первый параметр функции SHGetFilelnfo);

• iIcon (типа Integer) – номер значка в системном компоненте ImageList;

• dwAttributes (типа DWORD) – атрибуты заданного путем объекта;

• szDisplayName (типа array [0. МАХ_РАТН-1] of AnsiChar) – буфер для имени заданного объекта (например, сочетание имени и метки диска, отображаемое в ПроводникеWindows);

• szTypeName (типа array [0..79] of AnsiChar) – буфер для названия типа файла (например, Документ Microsoft Word).

На полях dwAttributes и ilcon подробно останавливаться не будем, зато рассмотрим, как заставить функцию SHGetFilelnfo заполнить остальные поля структуры (их проще всего использовать в Delphi). Вот используемые для этого флаги (имена целочисленных констант):

• SHGFIICON – поле hlcon заполняется дескриптором значка, ассоциированного с объектом; если при использовании дескриптор не сохраняется в каком-либо контейнере или прочем объекте, автоматически удаляющем ненужные значки (как в листинге 4.36), то после использования значок нужно удалить вручную (API-функция Destroylcon);

• SHGFI_LARGEICON, SHGFI_SMALLICON – ОНИ применяются В комбинации с SHGFIICON для получения большого или малого значков соответственно; использование флагов вместе не имеет смысла (будет получен малый значок);

• SHGFI_DISPLAYNAME—при наличии этого флага поле szDisplayName будет содержать дружественное пользователю имя объекта (например, System (С:));

• SHGFI_EXETYPE – при наличии этого атрибута полез zTypeName будет заполнено текстовым описанием типа файла.

Значения в приведенном списке можно, если не сказано иное, комбинировать при помощи операции битового ИЛИ (or).

Извлечение значков из ЕХЕ– и DLL-файлов

Наверняка вы знаете, что исполняемый файл, помимо кода программы, данных и прочей системной информации, может содержать также ресурсы. Так, из секции ресурсов берутся значки для ЕХЕ-файлов. Также в ЕХЕ– или DLL-файлах помещаются значки, используемые для ассоциированных с приложениями документов. Итак, в завершение главы рассмотрим еще один графический пример: создадим программу, способную извлекать упомянутые значки из DLL– или ЕХЕ-файлов (работает также и для ICO-файлов).

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

Листинг 4.37.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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