Как сделать калькулятор в Delphi?

Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.

Как Delphi реализует многоплатформенную разработку?

Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...

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

Советы » Файлы » Получение информации о версии файла

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение информации о версии файла

Зависимости:
Автор:       Gua, fbsdd@ukr.net, ICQ:141585495, Simferopol
Copyright:
Дата:        05 мая 2002 г.
***************************************************** }

{$B-,R-}

function

GetFileVersion(const

FileName: string

): string

; type

PDWORD = ^DWORD; PLangAndCodePage = ^TLangAndCodePage; TLangAndCodePage = packed

record

wLanguage: WORD; wCodePage: WORD; end

; PLangAndCodePageArray = ^TLangAndCodePageArray; TLangAndCodePageArray = array

[0..0] of

TLangAndCodePage; var

loc_InfoBufSize: DWORD; loc_InfoBuf: PChar; loc_VerBufSize: DWORD; loc_VerBuf: PChar; cbTranslate: DWORD; lpTranslate: PDWORD; i: DWORD; begin

Result := ''; if

(Length(FileName) = 0) or

(not

Fileexists(FileName)) then

Exit; loc_InfoBufSize := GetFileVersionInfoSize(PChar(FileName), loc_InfoBufSize); if

loc_InfoBufSize > 0 then

begin

loc_VerBuf := nil

; loc_InfoBuf := AllocMem(loc_InfoBufSize); try

if

not

GetFileVersionInfo(PChar(FileName), 0, loc_InfoBufSize, loc_InfoBuf) then

exit; if

not

VerQueryValue(loc_InfoBuf, '\VarFileInfo\Translation', Pointer(lpTranslate), DWORD(cbTranslate)) then

exit; for

i := 0 to

(cbTranslate div

SizeOf(TLangAndCodePage)) - 1 do

begin

if

VerQueryValue( loc_InfoBuf, PChar(Format( 'StringFileInfo%x0%xFileVersion', [ PLangAndCodePageArray(lpTranslate)[i].wLanguage, PLangAndCodePageArray(lpTranslate)[i].wCodePage])), Pointer(loc_VerBuf), DWORD(loc_VerBufSize) ) then

begin

Result := loc_VerBuf; Break; end

; end

; finally

FreeMem(loc_InfoBuf, loc_InfoBufSize); end

; end

; end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2024 - All Rights Reserved - www.delphirus.com