Последние записи
- Как запустить программу указанную в Edit.Text
- Скачать файл с использованием потока
- Поиск слова в Memo
- Распаковщик формата .img из GTA San Andreas
- Подсчет количества повторяющихся букв в файле
- Простейший скрипт загрузки картинки с помощью php
- Рассылка. Выпуск 154
- Получение картинки с веб-камеры
- Скопировать определённый кусок image
- Сделать printscreen экрана и сохранить
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));

