Программирование на Delphi и не только Сколько файлов в указанной папке? | Программирование на Delphi и не только

Delphi FAQ >> Файлы и каталоги Чтобы узнать, сколько файлов находится в корне указанного каталога, можно просто поискать все файлы в нем и посчитать, сколько файлов найдено. Для этого можно воспользоваться функциями Delphi FindFirst … FindNext … FindClose. //возвращает количество файлов в указанной директории function FilesInDir(Dir: String): Integer; var   sr: TSearchRec; begin   //сначала считаем что …

Программирование на Delphi и не только Как подсчитать полный размер папки? | Программирование на Delphi и не только

Delphi FAQ >> Файлы и каталоги Эта функция на языке Delphi рекурсивно подсчитывает полный размер указаннолй папки (включая размер подкаталогов). //возвращает размер папки в байтах function GetDirFullSize(aPath: String): Int64; var   sr: TSearchRec;   tPath: String;   sum: Int64; begin   //сначала размер принимаем равным нолю   sum := 0;   //добавляем завершающий слэш, если нужно   tPath := IncludeTrailingBackSlash(aPath);   //перебираем содержимое …

Программирование на Delphi и не только Как узнать сокращенное имя файла? | Программирование на Delphi и не только

Delphi FAQ >> Файлы и каталоги Раньше система оперировала сокращенными именами файлов. Иногда это требуется и сейчас, например чтобы не было в имени файла пробелов, но путь к нему оставался рабочим. Следующая функция на Delphi преобразует полное имя файла в краткое: function ToShortFname(FileName: String): String; var   buf: array[0..MAX_PATH-1] of Char; begin   SetString(Result, buffer, Windows.GetShortPathName(pchar(FileName), buf, …

Программирование на Delphi и не только Как открывать системные папки? | Программирование на Delphi и не только

Delphi FAQ >> Файлы и каталоги uses Shellapi, Shlobj; … Procedure OpenSpecialDir(const CSIDL:byte); var   PIDL: PItemIDList;   Info: TShellExecuteInfo;   pInfo:PShellExecuteInfo; begin   SHGetSpecialFolderLocation(0,CSIDL,PIDL);   pInfo:=@Info;   With Info do   begin     cbSize:=SizeOf(Info);     fMask:=SEE_MASK_NOCLOSEPROCESS+SEE_MASK_IDLIST;     wnd:=0;     lpVerb:=nil;     lpFile:=nil;     lpParameters:=nil;     lpDirectory:=nil;     nShow:=SW_ShowNormal;     hInstApp:=0;     lpIDList:=PIDL;   end;   ShellExecuteEx(pInfo); end; Константа CSIDL берётся из модуля ShlObj. Вот значения CSIDL для некоторых папок:  — CSIDL_APPDATA — Application Data  — …

Программирование на Delphi и не только Как удалить файл в «Корзину»? | Программирование на Delphi и не только

Delphi FAQ >> Файлы и каталоги Вот так можно удалить файл в Корзину в программе на Delphi: uses ShellApi; … function DeleteFileWithUndo(sFileName:string):boolean; var   fos:TSHFileOpStruct; begin   sFileName:=sFileName+#0;   FillChar(fos, SizeOf(fos), 0);   with fos do   begin     wFunc := FO_DELETE;     pFrom := PChar(sFileName);     fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT;   end;   Result := ( 0 = ShFileOperation(fos) ); end; Сейчас …

Программирование на Delphi и не только Как узнать тип файловой системы диска? | Программирование на Delphi и не только

Delphi FAQ >> Система Чтобы узнать, в какой файловой системе отформатирован диск, можно создать объект Scripting.FileSystemObject. Ниже приведена готовая функция на Delphi, которая по букве диска (неважно, строчной или прописной) возвращает название файловой системы этого диска: … uses ComObj; … function GetFileSystem(ADriveLetter: Char): String; var   fso, drv: OleVariant; begin   //создаем объект ‘Scripting.FileSystemObject’   fso := CreateOleObject(‘Scripting.FileSystemObject’); …

Программирование на Delphi и не только Как преобразовать цветное изображение в чёрно-белое? | Программирование на Delphi и не только

Delphi FAQ >> Графика Данная функция на Delphi преобразовывает цветное изображение в черно-белое(оттенки серого): function CreateGrayBmp (Source: TBitmap): TBitmap; var   Table: array[Byte] of TRGBQuad;   I: Integer; begin   Result := TBitmap.Create;   with Result do   begin     PixelFormat := pf8Bit;     Width := Source.Width;     Height := Source.Height;     for I := …

Программирование на Delphi и не только » Архив блога Microsoft Agent. Часть II | Программирование на Delphi и не только

В прошлой части мы научились применять технологию Microsoft Agent в web-страничках. В этот раз мы будем работать с Delphi. Убедитесь, что установлены все необходимые компоненты (см. первую часть) и можно отправляться в увлекательное путешествие по миру MsAgent. Запустите Delphi и в меню «Component» выберите пункт «Import ActiveX Control…». В появившемся диалоговом окне нужно выделить строку …

Программирование на Delphi и не только Как получить имена всех сетевых подключений? | Программирование на Delphi и не только

Delphi FAQ >> Интернет При помощи данной функции, написанной на Delphi, можно вывести список удаленных сетевых подключений. uses Registry; … function DUNGetConnections(OutList : TStrings) : Boolean; var   Reg : TRegistry; begin   OutList.Clear;   Reg := TRegistry.Create;   Reg.RootKey := HKEY_CURRENT_USER;   if Reg.OpenKey(‘\RemoteAccess\Profile’, False) then   begin     Reg.GetKeyNames(OutList);     Result := True; …

Программирование на Delphi и не только Как очистить кэш Internet Explorer? | Программирование на Delphi и не только

Delphi FAQ >> Интернет Данная процедура, написанная на языке Delphi, очищает кэш браузера Internet Explorer: uses WinInet; … procedure EmptyIECache; var   lpEntryInfo: PInternetCacheEntryInfo;   hCacheDir: LongWord;   dwEntrySize: LongWord;   dwLastError: LongWord; begin   dwEntrySize := 0;   FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);   GetMem(lpEntryInfo, dwEntrySize);   hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize);   if (hCacheDir 0) …