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

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

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

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

Получить размер файла

Советы » Файлы » Получить размер файла

function

Get_File_Size1(sFileToExamine: string

; bInKBytes: Boolean): string

; { for some reason both methods of finding file size return a filesize that is slightly larger than what Windows File Explorer reports } var

FileHandle: THandle; FileSize: LongWord; d1: Double; i1: Int64; begin

//a- Get file size FileHandle := CreateFile(PChar(sFileToExamine), GENERIC_READ, 0, {exclusive} nil

, {security} OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); FileSize := GetFileSize(FileHandle, nil

); Result := IntToStr(FileSize); CloseHandle(FileHandle); //a- optionally report back in Kbytes if

bInKbytes = True then

begin

if

Length(Result) > 3 then

begin

Insert('.', Result, Length(Result) - 2); d1 := StrToFloat(Result); Result := IntToStr(round(d1)) + 'KB'; end

else

Result := '1KB'; end

; end

; {****************************************************************************** Thanks to Advanced Delphi Systems here's another method which works just as well returning the same results *******************************************************************************} function

Get_File_Size2(sFileToExamine: string

; bInKBytes: Boolean): string

; var

SearchRec: TSearchRec; sgPath: string

; inRetval, I1: Integer; begin

sgPath := ExpandFileName(sFileToExamine); try

inRetval := FindFirst(ExpandFileName(sFileToExamine), faAnyFile, SearchRec); if

inRetval = 0 then

I1 := SearchRec.Size else

I1 := -1; finally

SysUtils.FindClose(SearchRec); end

; Result := IntToStr(I1); end

; procedure

TForm1.Button1Click(Sender: TObject); begin

if

OpenDialog1.Execute then

label1.Caption := Get_File_Size(Opendialog1.FileName, True); end

; {*******************************************************************************} function

Get_File_Size3(const

FileName: string

): TULargeInteger; // by nico var

Find: THandle; Data: TWin32FindData; begin

Result.QuadPart := -1; Find := FindFirstFile(PChar(FileName), Data); if

(Find <> INVALID_HANDLE_VALUE) then

begin

Result.LowPart := Data.nFileSizeLow; Result.HighPart := Data.nFileSizeHigh; Windows.FindClose(Find); end

; end

; procedure

TForm1.Button1Click(Sender: TObject); begin

if

(OpenDialog1.Execute) then

ShowMessage(IntToStr(Get_File_Size3(OpenDialog1.FileName).QuadPart)); end

; {*******************************************************************************} function

Get_File_Size4(const

S: string

): Int64; var

FD: TWin32FindData; FH: THandle; begin

FH := FindFirstFile(PChar(S), FD); if

FH = INVALID_HANDLE_VALUE then

Result := 0 else

try

Result := FD.nFileSizeHigh; Result := Result shl

32; Result := Result + FD.nFileSizeLow; finally

CloseHandle(FH); end

; end

;

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

Категории

Статьи

Советы

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