Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Разработка ресурсного файла версий для Delphi-проектов

Delphi , Файловая система , Ресурсы

Разработка ресурсного файла версий для Delphi-проектов

В данной статье рассматривается процесс создания и использования ресурсного файла версий (.rc) для Delphi-проектов. Ресурсный файл версий используется для хранения информации о версии программы, которая может быть прочитана и отображаться в свойствах файла на операционных системах Windows. Примером использования такой информации является отображение версии программы при наведении на исполняемый файл в проводнике Windows.

Структура версионной информации

Версионная информация в Windows представлена в виде блоков, которые содержат различные данные. Основные блоки - это VarFileInfo и StringFileInfo. Блок VarFileInfo содержит информацию о поддерживаемых локалях и кодовых страницах, в то время как StringFileInfo содержит строковые ресурсы, такие как описание файла, название компании и т.д., для каждой из локалей.

#include "windows.h"

1 VERSIONINFO
FILEVERSION 1, 2, 3, 4
FILEOS 0x00000004L  // VOS_WINDOWS32 (32-bit Windows)
FILETYPE VFT_APP
{
    BLOCK "VarFileInfo"
    {
        VALUE "Translation", 0x0809, 0x04E4
        // 0x0809 - ID языка: английский (Великобритания)
        // 0x04E4 - Кодовая страница: 1252 (Мульти-языковая)
    }

    BLOCK "StringFileInfo"
    {
        // Блок данных для локали ID 0x0809 и кодовой страницы 0x04E4
        BLOCK "080904E4"
        {
            VALUE "CompanyName", "MyCompanyName\0"
        }
    }
}

Получение информации о версии

Для извлечения информации о версии из исполняемого файла можно использовать следующий код на Delphi:

procedure TMyApp.GetFileVersionString();
var
    path, versionString: String;
    versionSize, versionLength: DWORD;
    pstrBuffer, pstrValue: PAnsiChar;
begin
    // Код для извлечения версии из файла
    // ...
end;

Для определения доступных блоков (StringFileInfo) необходимо использовать функцию VerQueryValue, указав путь к блоку VarFileInfo\Translation. Это позволит получить таблицу локалей и кодовых страниц, после чего можно будет извлечь строки для каждой из поддерживаемых локалей.

Пример кода для извлечения блоков локализации

procedure TMyApp.GetTranslationBlocks();
type
    TTranslationRecord = packed record
        LanguageID, Charset: WORD;
    end;
    PTranslationRecord = ^TTranslationRecord;
var
    path, translationBlock: String;
    versionSize: DWORD;
    pstrBuffer: Pointer;
    tRecord: PTranslationRecord;
    atRecords: array of TTranslationRecord;
    countRecords, index: Integer;
begin
    // Код для извлечения блоков локализации
    // ...
end;

Заключение

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

Создано по материалам из источника по ссылке.

Разработка ресурсного файла версий для Delphi-проектов включает создание и использование файла .rc для хранения информации о версии программы, которая может быть отображена в Windows.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Ресурсы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-10 19:27:02/0.013590812683105/0