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

Интервал:

Закладка:

Сделать

begin

//Изменение метки диска

if not SetDriveLabel(cboDrives.Items[cboDrives.ItemIndex],

txtLabel.Text)

then

MessageBox(self.Handle, \'Не удалось поменять метку диска\',

\'Ошибка\', MB_ICONEXCLAMATION)

else

//Перечитаем информацию о диске

cboDrivesSelect(self);

end;

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

4.2. Каталоги и пути

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

Прежде чем рассматривать решения конкретных задач, следует уточнить, что за магическое число, а точнее, целочисленная константа используется в некоторых примерах, приведенных далее. Речь идет о константе МАХРАТН, равной 260. Она используется явно или неявно (функциями API) в качестве максимально возможной длины пути. Здесь налицо небольшой парадокс: хотя такая файловая система как FAT32, и реализована так, что может поддерживать неограниченную вложенность каталогов, в реальности не получится создать даже два вложенных каталога с именем длиной 255 символов.

...

Примечание

При доскональной проверке вышесказанного выяснилось, что не получится создать даже один каталоге именем длиной 255 символов в корневой папке диска (например, С: \). Каталог может иметь имя длиной максимум 244 символа. С учетом длины имени корневой папки (получается 247) можно предположить, что в таком случае система резервирует оставшиеся 13 символов, чтобы в папке можно было сохранять файлы с именем в формате 8.3 (MS-DOS).

Системные папки WINDOWS и system

Приходилось ли вам хоть раз писать приложения, работоспособность которых зависела от расположения системных папок Windows? Если да, то вы наверняка хорошо знаете, как неустойчиво предположение о том, что папка WINDOWSвсегда C:\WIND0WS, a systemвсегда C:\WINDOWS\system.Ведь при установке операционной системы ничто не мешает поместить ее, например, на диск Е:\, а папку для Windows назвать Linux.Кроме того, системная папка Windows на платформе NT имеет имя system32,и кто знает, какое имя она будет иметь в следующей версии Windows. В таких и многих других случаях выручат API-функции: GetWindowsDirectory и GetSystemDirectory. Они обе принимают в качестве параметров строковый буфер и его длину и возвращают количество символов, записанных в переданный буфер, или 0 в случае ошибки.

Для этих функций удобно реализовывать функции-оболочки, работающие со стандартными для Delphi строками, что, собственно, и сделано при написании этой главы (все реализованные функции вы можете найти в модуле PathFunctions, расположенном на диске, прилагаемом к книге, в папке с названием подраздела). Итак, функция определения папки Windows приведена в листинге 4.11.

...

Листинг 4.11.

Определение папки WINDOWS

function GetWinDir(): String;

var

buffer: String;

len: UINT;

begin

SetLength(buffer, MAX_PATH + 1);

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

SetLength(buffer, len);

GetWinDir := buffer;

end;

По аналогии реализуется функция определения расположения системной папки, только вместо GetWindowsDirectory вызывается фyнкцияGetSystemDirectory.

Имена для временных файлов

Для централизованного хранения временных данных, необходимых при работе приложений, в Windows предусмотрена специальная папка Temp.Ее расположение может варьироваться. Причем в многопользовательских версиях Windows (NT, 2000, ХР) местоположение папки для временных файлов может быть различным для различных пользователей. Итак, расположение папки Tempпоможет определить API-функция GetTempPath. Она принимает следующие параметры: строковый буфер и длину этого буфера. Возвращает количество символов, записанных в переданную строку, или 0, если возникла ошибка. Функция-оболочка, скрывающая работу со строковым буфером и преобразование типов, реализуется аналогично двум ранее рассмотренным функциям (листинг 4.12).

...

Листинг 4.12.

Определение расположения папки для временных файлов

function GetTempDir(): String;

var

buffer: String;

len: UINT;

begin

SetLength(buffer, MAX_PATH + 1);

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

SetLength(buffer, len);

GetTempDir := buffer;

end;

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

...

Листинг 4.13.

Определение имени временного файла

function GetTempFile(prefix: String = \'~mytmp\'): String;

var

buffer, dir: String;

begin

dir := GetTempDir();

//Получение имени временного файла (система сама определяет

имя,

//уникальное для заданной папки)

SetLength(buffer, MAX_PATH + 1);

GetTempFileName(PAnsiChar(dir), PAnsiChar(prefix), 0,

PAnsiChar(buffer));

GetTempFile := buffer;

end;

Приведенная в листинге 4.13 функция в качестве папки для временных файлов использует папку Temp.Однако функцию GetTempFileName можно использовать для получения имен файлов в пределах любой папки.

Кроме пути папки, в которой необходимо создать временный файл, функция GetTempFileName принимает строку-префикс для имени временного файла и целочисленное значение (третий параметр). Если третий параметр не равен нулю, то его значение в шестнадцатеричной форме просто прибавляется справа к строке prefix. Никаких проверок на уникальность получившегося имени файла при этом не производится. Если же третий параметр установить в 0, то система сама сформирует шестнадцатеричное значение так, чтобы имя файла было уникальным в заданной папке. Кроме того, при этом создается и сам файл.

Буфер (последний параметр функции GetTempFileName) должен вмещать как минимум МАХРАТН символов, так как функция записывает в него полный путь временного файла.

Пример работы функций определения папки для временных файлов, получения имени для временного файла, а также определения системных папок Windows приводится на рис. 4.2.

Рис. 4.2. Папки WINDOWS, system, Temp и имя для временного файла

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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