FMXBridge для Inno Setup (внутренний проект)

DLL FMXBridge для Inno Setup (внутренний проект) 07.02

Нет прав для скачивания
1. Изменил возвращаемый тип функций с LongInt на HWND, потому что так правильно с точки зрения Delphi.
code_language.pascal:
type
  FForm = interface(IUnknown)
    '{C1EF3F26-12BF-421C-9AAC-4FFB9E9D72A1}'
    function FCreateMicaForm(WParent: HWND; FDark, Round: Boolean): HWND;
    function FCreateTabbedForm(WParent: HWND; FDark, Round: Boolean): HWND;
    function FCreateAcrylicForm(WParent: HWND; FDark, Round: Boolean): HWND;
    function FCreateBlankForm(WParent: HWND; FColor: TAlphaColor; const FImage: WideString; Round: Boolean): HWND;
    function FCreateImageForm(WParent: HWND; FColor: TAlphaColor; const FImage: WideString; Opacity: Boolean): HWND;
    function FCreateGradientForm(WParent: HWND; FColor1, FColor2: TAlphaColor; FStyle: TGradientStyle; Round: Boolean): HWND;
2. Теперь окно поддерживает обновление миниатюры в панели задач в реальном времени.
Ранее миниатюра была пустой, теперь отображается текущее содержимое окна.
3. Восстановлена анимация сворачивания в панель задач.

45.jpg
Тестирование ещё требуется
Добавлено - загрузка файлов

Позволяет скачивать файлы с отображением прогресса и скорости, с возможностью остановки через колбэк или глобально через AbortAllDownloads. Поддерживает последовательную загрузку нескольких файлов, обновление интерфейса через TDownloadCallback и сохраняет данные напрямую в файл через THTTPClient.

Пример
code_language.pascal:
var
  Url, FileName: WideString;
begin
  Url := 'https://example.com/file.zip';
  FileName := 'C:\Downloads\file.zip';

  DownloadFile(Url, FileName,
    function(const Url, LocalFileName: WideString;
             const ProgressCurrent, ProgressMax, SpeedKBps: Int64): Boolean
    begin
      // Обновляем прогрессбар и текст
      ProgressBar.Value := ProgressCurrent;
      ProgressText.Text := Format('%d%% (%d KB/s)', [ProgressCurrent * 100 div ProgressMax, SpeedKBps]);
      Result := False; // вернуть True, чтобы остановить загрузку
    end);
end;

Вложения

  • 3.png
    3.png
    84.5 KB · Просмотры: 4
Добавлено:
  • Для FCheckBoxTree — двустороннее управление чекбоксами секции (главный ↔ дочерние, включая радиокнопки).
  • Для FSpeedButton — процедура Pressed(FValue: Boolean), гарантирует, что кнопка визуально выглядит нажатой при старте.
Назад
Сверху