Последние записи
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
- Сравнение языков на массивах. Часть 1
- Сравнение языков по скорости
- Чтение огромных xml-файлов
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
4th
Янв
Как считать программно версию сборки программы в Delphi XE?
Posted by Chas under Delphi
В Delphi XE можно выставить в свойствах автоинкрементное увеличение версии программы при компиляции. Можно ли, например при в событии Form1.Create, получить эту версию, чтобы присвоить ее какой-нибудь текстовой переменной?
Человек_Борща
Я вот такой функцией пользуюсь…
function MyVersion(Files: string): string;
var
Buffer: string;
fInfoSize: DWORD;
function InitVersion: boolean;
var
FilenamePointer: PChar;
begin
Result := True;
FilenamePointer := PChar(Files);
fInfoSize := GetFileVersionInfoSize(FilenamePointer, fInfoSize);
if fInfoSize > 0 then
begin
SetLength(Buffer, fInfoSize);
if not GetFileVersionInfo(FilenamePointer, 0, fInfoSize, PChar(Buffer))
then
begin
Result := False;
end;
end; //if
end; //InitVersion
function GetVersion(whatToGet: string): string;
var
tmpVersion: string;
Len, Len2: DWORD;
Value: PChar;
temp: PLongInt;
tempStr: string;
begin
Result := '';
if fInfoSize > 0 then
begin
SetLength(tmpVersion, 200);
Value := @tmpVersion;
VerQueryValue(PChar(Buffer), '\VarFileInfo\Translation', Pointer(temp),
Len2);
tempStr := Format('%s%.4x%.4x\%s%s', ['\StringFileInfo\', LoWord(temp^),
HiWord(temp^), whattoget, #0]);
if VerQueryValue(PChar(Buffer), PChar(tempStr), Pointer(Value), Len) then
Result := Value;
end; // if
end; //getversion
begin
Buffer := '';
try
InitVersion;
result := GetVersion('FileVersion');
except
Result := '';
end;
end;
Использование:
Label.Captiom:=MyVersion(ParamStr(0));
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)