ExtractFileExt — Функция Delphi

ExtractFileExt — Функция Delphi

Здравствуйте, reanimator, Вы писали:

R>Пишу консольную аппликацию на Visual Sudio 6. Очень нужно извлечь имя файла и расширение. В Delphi есть функция ExtractFileName ( const FileName: string ): string; Существует ли аналог данной функции в MS C++?

От: reanimator
Дата: 29.10.04 15:46
Оценка:
От: Анатолий Широков
Дата: 29.10.04 15:56
Оценка:

Здравствуйте, reanimator, Вы писали:

R>Пишу консольную аппликацию на Visual Sudio 6. Очень нужно извлечь имя файла и расширение. В Delphi есть функция ExtractFileName ( const FileName: string ): string; Существует ли аналог данной функции в MS C++?

От: reanimator
Дата: 29.10.04 16:02
Оценка:
От: _AK_
Дата: 29.10.04 18:32
Оценка:

Здравствуйте, Анатолий Широков, Вы писали:

АШ>Здравствуйте, reanimator, Вы писали:

R>>Пишу консольную аппликацию на Visual Sudio 6. Очень нужно извлечь имя файла и расширение. В Delphi есть функция ExtractFileName ( const FileName: string ): string; Существует ли аналог данной функции в MS C++?

АШ>

+ ещё куча if-ов на всякие крайние случаи

От: _AK_
Дата: 29.10.04 18:33
Оценка:

Здравствуйте, reanimator, Вы писали:

R>Пишу консольную аппликацию на Visual Sudio 6. Очень нужно извлечь имя файла и расширение. В Delphi есть функция ExtractFileName ( const FileName: string ): string; Существует ли аналог данной функции в MS C++?

Смотри boost::filesystem, там всё это есть. Я её активно пользую, очень доволен.

От: Анатолий Широков
Дата: 29.10.04 18:48
Оценка:

_AK>+ ещё куча if-ов на всякие крайние случаи

Нет, никаких if-ов на крайние случаи, так как стандарт четко определяет значение npos (-1). Поэтому даже если в исходной строке и не будет никаких слешей и точек, код отработает как и ожидалось.

От: Анатолий Широков
Дата: 29.10.04 19:19
Оценка:

Здравствуйте, Анатолий Широков, Вы писали:

_AK>>+ ещё куча if-ов на всякие крайние случаи

АШ>Нет, никаких if-ов на крайние случаи, так как стандарт четко определяет значение npos (-1). Поэтому даже если в исходной строке и не будет никаких слешей и точек, код отработает как и ожидалось.

Конечно, для extension я слукавил, поскольку отсутствие точки должно приводить к тому, что extension должен быть пустым, у меня же extension будет fullpath, ну да ладно

От: _AK_
Дата: 29.10.04 19:41
Оценка:

Здравствуйте, Анатолий Широков, Вы писали:

АШ>Здравствуйте, Анатолий Широков, Вы писали:

_AK>>>+ ещё куча if-ов на всякие крайние случаи

АШ>>Нет, никаких if-ов на крайние случаи, так как стандарт четко определяет значение npos (-1). Поэтому даже если в исходной строке и не будет никаких слешей и точек, код отработает как и ожидалось.

АШ>Конечно, для extension я слукавил, поскольку отсутствие точки должно приводить к тому, что extension должен быть пустым, у меня же extension будет fullpath, ну да ладно

Если бы только extension, а про то что слэш может быть обратный не забываем? а про-то что функции на вход могут подать нечто типа «C:\» или «..» не забываем? а про то что точка первый раз может встретиться только в имени директории? вообще написать функции типа: basename(), branch(), leaf(), extension() конечно не сложно, но если необходимо учесть все случаи (и хрен с ней с призрачной переносимостью, хватит только WinAPI) всё таки не так тривиально как может показаться с первого взгляда

ExtractFileExt — Функция Delphi

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

Таблица стандартных процедур и функций для работы с именами файлов
Наименование Описание
ChangeFileExtention функция Изменяет расширение файла.
DosPathToUnixPath функция Конвертирует путь, заданный в спецификации DOS в путь по спецификации Unix.
ExcludeTrailingBackslash функция Возвращает путь без символов разделителей пути («\» — для Windows и «/» — для Linux). Эта функция включена для совместимости со старыми версиями. Новые программы должны использовать ExcludeTrailingPathDelimiter.
ExcludeTrailingPathDelimiter функция Возвращает путь без символов разделителей пути («\» — для Windows и «/» — для Linux).
ExpandFileName функция Возвращает полный путь для имени файла, заданного относительно, без учета регистра.
ExpandFileNameCase функция Возвращает полный путь для имени файла, заданного относительно, с учетом регистра.
ExpandUNCFileName функция Возвращает полный путь для имени файла в формате Universal Naming Convention для сетевых файлов, если это возможно.
ExtractFileDir функция Возвращает полное (включая имя диска) имя дирректории, в которой расположен файл.
ExtractFileDrive функция Возвращает имя диска.
ExtractFileExt функция Возвращает расширение файла.
ExtractFileName функция Возвращает имя файла с расширением.
ExtractFilePath функция Возвращает полный путь к файлу.
ExtractRelativePath функция Возвращает относительное имя файла относительно заданной базовой директории.
ExtractShortPathName функция Конвертирует полное имя файла в короткую 8.3 форму. Например: «C:\Program Files\MyCompany\MyApp\MyApp.exe» будет преобразовано в «C:\Progra

1\MyApp\MyApp.exe».

IncludeTrailingBackslash функция Включает в путь символы разделителей пути («\» — для Windows и «/» — для Linux). Эта функция включена для совместимости со старыми версиями. Новые программы должны использовать IncludeTrailingPathDelimiter.
IncludeTrailingPathDelimiter функция Включает в путь символы разделителей пути («\» — для Windows и «/» — для Linux).
IsPathDelimiter функция Показывает являектся ли символ в указазанной позиции символом разделителя пути («\» — для Windows и «/» — для Linux).
MatchesMask функция Показывает удовлетворяет ли конкретное имя файла формату, заданному в маске.
MinimizeName функция Укорачивает полное имя файла так, чтобы оно поместилось в ограниченную область вывода. Если полное имя файла превышает область вывода, MinimizeName заменяет часть пути точками так, чтобы имя файла вписалось в заданные рамки.
ProcessPath процедура Раскладывает полное имя файла по полочкам, вычленяя: имя диска, путь к файлу, короткое имя файла с расширением.
UnixPathToDosPath функция Конвертирует путь, заданный в спецификации Unix в путь по спецификации DOS.

Список литературы:

  1. Delphi7 Help

Канал в Telegram

Вы здесь

ExtractFileExt (функция)

Функция ExtractFileExt – извлекает из имени файла его расширение определяющее тип файла. Функция входит в состав библиотеки SysUtils и имеет один входной параметр — текстовую строку.

Обратите внимание! Функция возвращает расширение вместе с точкой.

Синтаксис функции: ExtractFileExt(const FileName: string): string;

Пример использования функции ExtractFileExt:

Примечание: Хоть функция ExtractFileExt и предназначена для извлечения расширения из имени файла, она так же может использоваться для извлечения окончаний идущих после точки (в конце строки!). Например, определение доменной зоны (.RU, .РФ, .COM и т.д.).

ExtractFileExt — Функция Delphi

������ 1
function GetFileName(fname : String) : String;
var i : integer;
begin
Result := ExtractFileName(fname);
for i := Length(Result) downto 1 do
if Result = ‘.’ then
begin
Result := copy(Result, 1, i — 1);
break;
end;
end;

������ 2
function GetFileName(fname : String) : String;
begin
Result := ExtractFileName(fname);
while (Length(Result) > 0) and Result[Length(Result)] <> ‘.’ do
Delete(Result, Length(Result, 1));
end;

Клуб программистов

Delphi programming

Подписаться на рассылку:

ExtractFileName

извлекает из полного имени файла краткое имя файла

|| function ExtractFileName ( const FullFileName : string ) : string;

Описание:

Delphi функция ExtractFileName извлекает из полного имени файла краткое имя файла.

Т.е. программа получает имя файла без его полного адреса.

Пример кода:

var
fullFileName : string;

begin
// Set up a full file name with drive and path
fullFileName := ‘C:\Program Files\Borland\Delphi7\Projects\Unit1.dcu’;

// Show the component parts of this full name
ShowMessage(‘Drive = ‘+ExtractFileDrive (fullFileName));
ShowMessage(‘Dir = ‘+ExtractFileDir (fullFileName));
ShowMessage(‘Path = ‘+ExtractFilePath (fullFileName));
ShowMessage(‘Name = ‘+ExtractFileName (fullFileName));
ShowMessage(‘Ext = ‘+ExtractFileExt (fullFileName));
end;

Результат выполнения:

Drive = C:
Dir = C:\Program Files\Borland\Delphi7\Projects
Path = C:\Program Files\Borland\Delphi7\Projects\
Name = Unit1.dcu
Ext = .dcu

Адрес и имя файла

Тип Variant

Бывают случаи, когда на этапе программирования мы еще не можем четко определить тип данных определенной переменной. В таком случае можно воспользоваться очень мощным типом Variant . Этот тип вводился в Delphi для поддержки технологии OLE ( Object Link and Embedding – внедрение и связь объектов). Такая технология широко используется в Windows для обмена данными между приложениями различного типа. С помощью OLE происходит вставка таблицы MS Excel в редактор текстов MS Word , или картинка из Paint легко вставляется в тот же редактор. В этой технологии Variant используется на каждом шагу, однако ему можно найти применение и в других случаях.

Переменные типа Variant могут принимать значения любого типа! Вы присваиваете такой переменной что угодно, а программа сама определяет ее тип на этапе выполнения. Давайте рассмотрим пример:

В этом примере во время выполнения программы тип переменной изменится 4 раза, и код выполнится корректно. Когда программа встречает тип Variant , она автоматически выделяет под нее память . Если значение не задано, переменной присваивается ноль.

Совет: старайтесь использовать тип Variant только там, где это действительно необходимо! За удобство использования такой переменной тоже приходится платить. Переменная такого типа занимает значительно больше памяти, чем переменная любого другого типа. Процессору мы тоже задаем лишнюю работу, ведь сначала нужно определить тип данных в переменной, затем присвоить этот тип самой переменной, и т.п. Кроме того, переменные типа Variant очень сложно отлаживать в больших программах. Складывая, к примеру, строку и целое число , вы можете получить совсем не тот результат, который ожидали!

Как вы считаете, какой результат окажется в конце концов в переменной v1 ? На первый взгляд, результат очевиден: число 16. Однако не спешите с выводами. Когда операторы вычисления имеют равный приоритет, они выполняются слева – направо. В данном примере вначале объединятся строки, в результате чего получится строка «15». Затем эта строка преобразуется в целое число , и к нему будет прибавлено число 10. Поэтому результат сложения – число 25.

Функции для работы с именем файла

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

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

Функция ExtractFileName()

Функция возвращает имя файла без имени диска и каталогов, извлекая его из полного имени файла FileName . В качестве параметра указывается полный путь и имя файла .

Функция ExtractFilePath()

Функция возвращает путь к файлу, извлекая его из полного имени файла. Если имя файла не содержит ни имя каталогов, ни имя диска, то функция возвращает пустую строку. Подобное же действие выполняет функция ExtractFileDir() . Отличие этих функций в том, что в конце возвращаемого адреса функции ExtractFilePath() есть знак «\», а функция ExtractFileDir() этот знак не устанавливает:

Функция ExtractShortPathName()

Функция конвертирует длинное имя файла в DOS-формат, так называемый, 8.3. Этот формат подразумевает, что имя файла или папки может быть длиной максимум 8 символов, а затем, после точки, может присутствовать расширение имени файла из 3-х символов. Если имя папки (файла) имеет больше символов, оно будет обрезано до 8 символов.

Если указанный файл или каталог не существует, то функция возвращает пустую строку. Параметр может представлять собой полное имя файла. Если указанный файл не существует, то функция возвращает пустую строку. Пример:

Процедура ProcessPath()

Процедура анализирует полное имя файла и возвращает отдельно имя диска, каталог и имя файла . Если файл не существует, то возникает ошибка. Когда полное имя файла содержит больше одного каталога, также возникает ошибка.

Функция ExtractFileDrive()

Функция возвращает имя диска, извлеченное из полного имени файла. Если указанное имя файла не содержит имя диска, то функция возвращает пустую строку. Для имени в UNC формате (сетевое имя) возвращается строка в формате ‘\\ \ ‘.

Функция ExtractFileExt()

Функция возвращает расширение файла, имя которого указано в параметре. Результирующая строка включает в себя символ точки и символы расширения файла. Если указанное имя файла не имеет расширения, то функция возвращает пустую строку. Пример:

Пишем программу

Чтобы усвоить, как работают эти функции, создадим новое приложение . Форму сразу переименуйте в fMain , а проект сохраните под названием fname в отдельной папке. На форму установите Edit , здесь будет отображаться полное имя файла . Сразу под ней установите Label , тут будет отображаться результат работы функций. Очистите текст и у Edit и у Label . Ниже бросьте на форму кнопку, и напишите на ней «Открыть файл «. Рядом с ней бросьте OpenDialog , он нам понадобится для открытия нужного файла. Еще ниже сгруппируйте 6 кнопок, на которых напишите:

ExtractFileExt — Функция Delphi

Здравствуйте, reanimator, Вы писали:

R>Пишу консольную аппликацию на Visual Sudio 6. Очень нужно извлечь имя файла и расширение. В Delphi есть функция ExtractFileName ( const FileName: string ): string; Существует ли аналог данной функции в MS C++?

От: reanimator
Дата: 29.10.04 15:46
Оценка:
От: Анатолий Широков
Дата: 29.10.04 15:56
Оценка:

Здравствуйте, reanimator, Вы писали:

R>Пишу консольную аппликацию на Visual Sudio 6. Очень нужно извлечь имя файла и расширение. В Delphi есть функция ExtractFileName ( const FileName: string ): string; Существует ли аналог данной функции в MS C++?

От: reanimator
Дата: 29.10.04 16:02
Оценка:
От: _AK_
Дата: 29.10.04 18:32
Оценка:

Здравствуйте, Анатолий Широков, Вы писали:

АШ>Здравствуйте, reanimator, Вы писали:

R>>Пишу консольную аппликацию на Visual Sudio 6. Очень нужно извлечь имя файла и расширение. В Delphi есть функция ExtractFileName ( const FileName: string ): string; Существует ли аналог данной функции в MS C++?

АШ>

+ ещё куча if-ов на всякие крайние случаи

От: _AK_
Дата: 29.10.04 18:33
Оценка:

Здравствуйте, reanimator, Вы писали:

R>Пишу консольную аппликацию на Visual Sudio 6. Очень нужно извлечь имя файла и расширение. В Delphi есть функция ExtractFileName ( const FileName: string ): string; Существует ли аналог данной функции в MS C++?

Смотри boost::filesystem, там всё это есть. Я её активно пользую, очень доволен.

От: Анатолий Широков
Дата: 29.10.04 18:48
Оценка:

_AK>+ ещё куча if-ов на всякие крайние случаи

Нет, никаких if-ов на крайние случаи, так как стандарт четко определяет значение npos (-1). Поэтому даже если в исходной строке и не будет никаких слешей и точек, код отработает как и ожидалось.

От: Анатолий Широков
Дата: 29.10.04 19:19
Оценка:

Здравствуйте, Анатолий Широков, Вы писали:

_AK>>+ ещё куча if-ов на всякие крайние случаи

АШ>Нет, никаких if-ов на крайние случаи, так как стандарт четко определяет значение npos (-1). Поэтому даже если в исходной строке и не будет никаких слешей и точек, код отработает как и ожидалось.

Конечно, для extension я слукавил, поскольку отсутствие точки должно приводить к тому, что extension должен быть пустым, у меня же extension будет fullpath, ну да ладно

От: _AK_
Дата: 29.10.04 19:41
Оценка:

Здравствуйте, Анатолий Широков, Вы писали:

АШ>Здравствуйте, Анатолий Широков, Вы писали:

_AK>>>+ ещё куча if-ов на всякие крайние случаи

АШ>>Нет, никаких if-ов на крайние случаи, так как стандарт четко определяет значение npos (-1). Поэтому даже если в исходной строке и не будет никаких слешей и точек, код отработает как и ожидалось.

АШ>Конечно, для extension я слукавил, поскольку отсутствие точки должно приводить к тому, что extension должен быть пустым, у меня же extension будет fullpath, ну да ладно

Если бы только extension, а про то что слэш может быть обратный не забываем? а про-то что функции на вход могут подать нечто типа «C:\» или «..» не забываем? а про то что точка первый раз может встретиться только в имени директории? вообще написать функции типа: basename(), branch(), leaf(), extension() конечно не сложно, но если необходимо учесть все случаи (и хрен с ней с призрачной переносимостью, хватит только WinAPI) всё таки не так тривиально как может показаться с первого взгляда

Функции Delphi модуля SysUtils

Модуль SysUtils

Предлагаем список функций модуля SysUtils, используемого в среде разработки Delphi.

AnsiCompareStr Сравнение двух строк на равенство
AnsiCompareText Сравнение двух строк на равенство
AnsiLowerCase Символы верхнего регистра изменяются в строку со строчными буквамм
AnsiPos Находит позицию одной строки в другой
ChangeFileExt Изменяет расширение имени файла
CompareStr Сравнивает две строки, чтобы увидеть, какая из них больше
CompareText Сравнивает две строки, игнорируя регистр
CreateDir Создаёт директорию
CurrToStr Преобразует денежную величину в строку
CurrToStrF Преобразует денежную величину в строку с форматированием
Date Возвращает текущую дату
DateTimeToFileDate Преобразует значение TDateTime в формат date/time формат файла
DateTimeToStr Конвертирует значение даты и времени TDateTime в строку
DateToStr Преобразует значение даты TDateTime в строку
DayOfWeek Выдает индекс дня недели для значения TDateTime
DeleteFile Удаляет файл, указанный в параметре
DirectoryExists Возвращает true, если указанная директория существует
DiskFree Выдает число свободных байтов на указанном диске
DiskSize Выдает размер указанного диска в байтах
EncodeDate Формирует значение TDateTime из значений года, месяца и дня
EncodeTime Формирует значение TDateTime из значений часа, минуты, секунды и миллисеккунды
ExtractFileDir Извлекает из полного имени файла название папки
ExtractFileDrive Извлекает из полного имени файла название диска
ExtractFileExt Извлекает из полного имени файла его расширение
ExtractFileName Извлекает из полного имени файла краткое имя файла
ExtractFilePath Извлекает из полного имени файла название патча
FileAge Получение дата/время последнего изменения файла, не открывая его
FileDateToDateTime Конвертирует формат даты/времени файла в значение TDateTime
FileExists Возвращает True если указанный файл существует
FileGetAttr Выдаёт атрибуты файла
FileSearch Поиск файла в одной или более папках
FileSetAttr Устанавливает атрибуты файла
FindClose Закрывает успешный FindFirst поиск файла
FindCmdLineSwitch Определяет, был передан некоторый параметр выключатель
FindFirst Находит все файлы, соответствующие маске файла и атрибутов
FindNext Находит следующий файл после успешного FindFirst
FloatToStr Преобразует значение с плавающей запятой в строку
FloatToStrF Преобразует значение с плавающей запятой в строку с форматированием
ForceDirectories Создаёт новый путь каталогов
Format Богатое форматирование чисел и текста в строке
FormatCurr Богатое форматирование значений валюты в строку
FormatDateTime Богатое форматирование переменной TDateTime в строку
FormatFloat Богатое форматирование числа с плавающей запятой в строку
GetCurrentDir Возвращает текущий каталог (диск плюс каталог)
IncMonth Увеличивает TDateTime переменную на некоторое число месяцев
IntToHex Преобразует целое число в шестнадцатеричную строку
IntToStr Конвертирует целое число в строку
IsLeapYear Возвращает True, если данный календарный год високосный
LastDelimiter Находит последнюю позицию указанных символов в строке
LowerCase Изменяет символы верхнего регистра в строке в строчные буквы
Now Выдает текущую дату и время
RemoveDir Позволяет удалить директорию
Rename Переименовка фала
RenameFile Переименование файла или директории
SetCurrentDir Изменяет текущую директорию
StrScan Ищет заданные символы в строке
StrToCurr Преобразует числовую строку в денежное выражение
StrToDate Конвертирует строку с датой в значение типа TDateTime
StrToDateTime Конвертирует строку с датой и временем в значение типа TDateTime
StrToFloat Преобразует числовую строку в значение с плавающей запятой
StrToInt Преобразует строку с целым значением в Integer
StrToInt64 Преобразует строку с целым значением в Int64
StrToInt64Def Преобразует строку с целым значением в Int64, учитывая значение по умолчанию
StrToIntDef Преобразует строку с значение с типом Integer, учитывая значение по умолчанию
Time Возвращает текущее время
TimeToStr Конвертирует значение времени типа TDateTime в строку
Trim Удаляет начальные и конечные пробелы в строке
TrimLeft Удаляет начальные пробелы в строке
TrimRight Удаляет конечные пробелы в строке
UpperCase Изменяет символы в строке из нижнего регистра в верхний
WrapText Добавьте перенос строки в строку, чтобы имитировать перенос слов
Abort Прерывает обработку команд и выходит к последнему исключительному блоку
AppendStr Конкатенация одной строки в конец другой
Beep Делает звук гудка
DateTimeToString Огромные возможности форматирования даты в строку
DecodeDate Извлекает значения года, месяца, дня из TDateTime переменной
DecodeDateTime Разбивает TDateTime переменную на ее части даты/времени
DecodeTime Разбивает значение TDateTime на отдельные значения времени
FreeAndNil Освобождение памяти объекта и установка его в nil
FreeMem Освобождает память, используемую переменной
GetLocaleFormatSettings Получает региональные значения для безопасных потоков функций.
ReplaceDate Изменяет только часть даты TDateTime переменной
ReplaceTime Изменяет только часть времени TDateTime переменной

ExtractFileExt — Функция Delphi

На этом шаге мы рассмотрим свойства, методы и события класса TApplication .

Компонент TApplication инкапсулирует приложение при выполнении. Delphi автоматически создает экземпляр Application класса TApplication при выполнении приложения. Для использования этого объекта включите модуль Forms в раздел Uses .

Свойства класса TApplication

TApplication предоставляет несколько свойств, с помощью которых можно отслеживать состояние приложения и контролировать некоторые аспекты его поведения.

  1. property Active: Boolean; — это свойство имеет значение True , если в приложении в текущий момент содержится фокус ввода. Если это свойство приложения имеет значение True , то и свойство Active для одной из форм также равно True . Обычно оно используется для определения, имеет ли приложение фокус ввода перед выводом строки состояния или прорисовкой объекта TCanvas .

Примечания .

  1. Даже будучи неактивным, приложение продолжает получать сообщения о перемещении мыши.
  2. Значение этого свойства можно только читать.

  1. property ExeName: string; — представляет собой строку, содержащую полный путь выполняемого файла. Чаще всего оно используется для определения рабочего каталога приложения, в котором могут находиться файлы данных или инициализации программы.

Примечание . Для выделения из этого свойства рабочего каталога, используйте функции ExtractFileDir или ExtractFilePath . Для получения имени файла — функцию ExtractFileName . Функция ExtractFileExt вернет расширение файла, а функция ExtractFileDrive — имя устройства, на котором расположен файл. Все эти функции находятся в модуле SysUtils .

  1. property Hint: string; — содержит текст, который будет выведен после запуска события OnHint . Значением этого свойства является текст подсказки Hint того визуального компонента, над которым в данный момент перемещается курсор мыши. Это свойство можно использовать, например, для отображения подсказки в строке состояния приложения.
  2. property ShowHint: Boolean; — установка свойства равным False отключает систему подсказок для всех элементов в приложении независимо от их индивидуальных установок.
  3. property HintColor: TColor; — определяет цвет окна всплывающей подсказки. По умолчанию это цвет clInfoBk (желтый), но его можно изменять программно.
  4. property HintPause: Integer; — задает время (в миллисекундах) перед выводом окна подсказки (значение по умолчанию — 500 миллисекунд или половина секунды).
  5. property HintHidePause: Integer; — задает время (в миллисекундах) перед закрытием окна подсказки (значение по умолчанию — 2500 миллисекунд или две с половиной секунды).
  6. property HintShowPause: Integer; — задает время (в миллисекундах) перед отображением окна подсказки, если активна подсказка другого элемента (значение по умолчанию — 50 миллисекунд). Это свойство позволяет предотвратить появление неприятного мерцания, если пользователь быстро перемещает мышь над разными компонентами.
  7. property Icon: TIcon; — позволяет изменить пиктограмму, представляющую приложение в панели задач во время работы. Это полезно, если необходимо отмечать, таким образом, изменение состояния приложения. Следующий код назначает пиктограмму из файла INACTIVE.ICO :

Рис.1. Вкладка Application

Свойство может изменяться программно, например, изменяя надпись в зависимости от режима работы приложения.

  • property MainForm: TForm; — задает главную форму приложения.
  • property ShowMainForm: Boolean; — определяет, должна ли главная форма быть видимой в момент запуска приложения на выполнение. По умолчанию оно равно True , что обеспечивает видимость главной формы в момент начала работы приложения. Если установить это свойство в False до вызова метода Application.Run и, если при этом свойство Visible главной формы тоже равно False , то главная форма в первый момент будет невидимой.
  • property HelpFile: string; — указывает файл справки, который используется в приложении в данный момент как файл по умолчанию. Если это свойство не изменяется во время выполнения приложения, то оно равно опции Help File , задаваемой во время проектирования на странице Application окна опций проекта. Свойство можно изменять программно, назначая в зависимости от режима работы приложения тот или иной файл справки.
  • Методы класса TApplication

    Рассмотрим некоторые методы объекта Application . Методы Initialize — инициализация объекта, и Run — запуск выполнения приложения, включаются в каждый проект автоматически. Это можно увидеть в файле проекта (пункт меню Project | View Source ). Там же размещается метод создания форм CreateForm для всех автоматически создаваемых форм проекта. Общий вид этого метода следующий:

    При выполнении метода:

    Метод Terminate завершает выполнение приложения. Если нужно завершить приложение из главной формы, то вместо метода Application.Terminate можно использовать метод Close главной формы. Но если требуется закрыть приложение из какой-нибудь вторичной формы (например, из окна диалога), то нужно применить метод Application.Terminate .

    Метод Minimize сворачивает приложение, помещая его пиктограмму на панель задач. Метод Maximize разворачивает приложение на весь экран.

    События класса TApplication и их обработка

    Объект класса TApplication создается только при выполнении приложения, значит на этапе разработки приложения все его события недоступны. Поэтому нельзя использовать Инспектор объектов (Object Inspector) для создания обработчиков событий. Однако в некоторых случаях требуется создавать обработчики событий этого класса. Приведем общий способ создания обработчиков событий класса TApplication .

    Сначала опишем обработчик события. Поскольку событие распознается и запускается объектом, обработчик должен быть методом объекта. Он также должен соответствовать соглашению о вызовах события, которое обычно описано в справочной системе. Например, из файлов справки можно узнать, что событие OnActivate типа TNotifyEvent является наиболее общим типом. Его описание выглядит так:

    Это описание говорит о том, что обработчик должен получать параметр TObject , который позволяет определить, какой именно объект распознал и отослал событие.

    Создадим новое приложение и модифицируем описание TForm1 :

    Описание обработчика как protected не несет особой нагрузки и принято по умолчанию. Важно лишь, чтобы он был методом класса.

    Теперь, когда мы описали обработчик, определим его. Для этого нужно поместить код этого обработчика в раздел implementation модуля:

    При выполнении этого обработчика на экран выводится диалоговое окно с сообщением: Привет всем. , кнопкой OK и картинкой с символом i .

    Наконец, назначим обработчик событию. Обычно это выполняется в событии OnCreate главной формы. Измените обработчик события OnCreate класса TForm1 следующим образом:

    Эта конструкция означает, что при возникновении события Application.OnActivate будет выполняться процедура OnActivateHandler .

    В результате выполнения этого приложения на экране будет следующая «картинка»:

    Рис.2. Внешний вид приложения

    Текст этого примера можно взять здесь.

    На следующем шаге мы продолжим рассматривать обработку событий класса TApplication , в частности, познакомимся с компонентом ApplicationEvents .

    MyChat Scripts: функция ExtractFileName, получение имени файла

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

    Синтаксис

    function ExtractFileExt(sFileName:string): string;

    Параметры и возвращаемые значения

    имя файла и/или полный путь к нему.

    Результат функции

    Полное имя файла вместе с расширением, без пути.

    Пример

    Результат работы скрипта

    [20:17:51] (Log «ExtractFileParts»): Full name: E:\Projects\MC\Sources\Server\mcserv.exe

    [20:17:51] (Log «ExtractFileParts»): Path: E:\Projects\MC\Sources\Server\

    [20:17:51] (Log «ExtractFileParts»): Name: mcserv.exe

    [20:17:51] (Log «ExtractFileParts»): Extension: .exe

    [20:17:51] (Run «ExtractFileParts»): Время выполнения скрипта: 5 мс

    [20:17:51] (Run «ExtractFileParts»): Скрипт выполнен успешно.

    Илон Маск рекомендует:  Техника программирования сложных окон в visual basic
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL