Leserg
Участник
Какой смысл добавлять пустой файл?но если файл пустой, то
По факту в ресурсы записывается НЕ файл, а данные из него (содержимое файла). Если же данных нет, то и записывать нечего.
Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Какой смысл добавлять пустой файл?но если файл пустой, то
чисто забыл в нем написатьпустой файл
Crachlow, я не понял, это хорошо или плохо?Обнаружил одну характерную особенность, в процедуре ExtractTemporaryFileEx, раньше можно было писать ExtractTemporaryFileEx('file.exe',ExpandConstant('{src}')) сейчас если не указать ,ExpandConstant('{src}\'), то распаковка будет на уровень выше
Че из-за него то делать. Потом если чет еще выявится, можно будет поправить.это хорошо или плохо
Ну как бы просто неожиданно)). Не сразу понял куда файл распаковался))хорошо или плохо
В Inno Setup 6 функция CenterInsideControl стала FlipSizeAndCenterIfNeeded.А можно CenterInsideControl вернуть, или добавить, в 633?
БлвгодарюВ Inno Setup 6 функция CenterInsideControl стала FlipSizeAndCenterIfNeeded.
[Setup]
AppName=Test
AppVerName=Test
OutputBaseFilename=Test
DefaultDirName=Test
OutputDir=userdocs:..\desktop
[Code]
function CreateRoundRectRgn(X1, Y1, X2, Y2, W, H: Integer): Integer; external 'CreateRoundRectRgn@gdi32.dll stdcall';
function SetWindowRgn(bWnd: HWND; bRgn: Integer; bRedraw: Boolean): Integer; external 'SetWindowRgn@user32.dll stdcall';
var Label1:TLabel;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean); begin Confirm:=False; end;
procedure MinimizeClick(Sender: TObject);begin SendMessage(WizardForm.Handle, $0112, 61472, 0); end;
procedure InitializeWizard;
begin
WizardForm.Position:=poDesktopCenter;
WizardForm.BorderStyle:=bsNone;
WizardForm.ClientWidth:=ScaleX(600);
WizardForm.ClientHeight:=ScaleY(400);
WizardForm.OuterNotebook.Hide;
WizardForm.Color:=$000000;
SetWindowRgn(WizardForm.Handle, CreateRoundRectRgn(0, 0, WizardForm.Width, WizardForm.Height, 0, 0), True);
Label1:=TLabel.Create(WizardForm);
Label1.Parent:=WizardForm;
Label1.AutoSize:=False;
Label1.Alignment:=taCenter;
Label1.SetBounds(ScaleX(275), ScaleY(-10), ScaleX(50), ScaleY(20));
Label1.Caption:='—'
Label1.Font.Size:=20;
Label1.Font.Color:=$7280FA;
Label1.OnClick:=@MinimizeClick;
end;
Весь функционал, связанный с кастомной тенью, был удалён. Причины описаны в этом сообщении.(WizardFormShadow.ShadowOn := False) - не работает.
Если речь про это:Хотел спросить можно ли убрать эту белую рамку вокруг формы, в версиях 6.3.3 и выше?
#if !defined(IS_ENHANCED) || (VER < 0x06030300)
#pragma error "Для компиляции этого сценария требуется расширенная \
редакция Inno Setup 6.3.3 или выше"
#endif
[Setup]
AppName=Test
AppVerName=Test
OutputBaseFilename=Test
DefaultDirName=Test
OutputDir=.
; Отключаем скругление углов
SetupRoundedCorner=off
[Code]
// Объявляем константы
const
DWMWA_BORDER_COLOR = 34;
S_OK = 0;
// Объявляем переменные
var
Label1: TLabel;
// Объявляем вызов внешней функции установки DWM-атрибута
// Будет работать только на Windows 10 версии 1809 (build 17763) и выше
function DwmSetWindowAttribute(hwnd: HWND; dwAttribute: DWORD; var pvAttribute: DWORD; cbAttribute: DWORD): HRESULT;
external 'DwmSetWindowAttribute@dwmapi.dll stdcall';
// Установка цвета
function SetWindowBorderColor(Wnd: HWND; Color: DWORD): Boolean;
var
ColorVar: DWORD;
begin
ColorVar := Color;
Result := DwmSetWindowAttribute(Wnd, DWMWA_BORDER_COLOR, ColorVar, SizeOf(ColorVar)) = S_OK;
end;
// Пользовательские функции
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean); begin Confirm:=False; end;
procedure MinimizeClick(Sender: TObject);begin SendMessage(WizardForm.Handle, $0112, 61472, 0); end;
procedure InitializeWizard;
begin
// Задаем цвет рамки DWM
SetWindowBorderColor(WizardForm.Handle, $000000);
// Устанавливаем желамые свойства окна
WizardForm.BorderStyle:=bsNone;
WizardForm.ClientWidth:=ScaleX(600);
WizardForm.ClientHeight:=ScaleY(400);
WizardForm.OuterNotebook.Hide;
WizardForm.Color:=$000000;
// Создаем элемент TLabel
Label1:=TLabel.Create(WizardForm);
Label1.Parent:=WizardForm;
Label1.AutoSize:=False;
Label1.Alignment:=taCenter;
Label1.SetBounds(ScaleX(275), ScaleY(-10), ScaleX(50), ScaleY(20));
Label1.Caption:='—'
Label1.Font.Size:=20;
Label1.Font.Color:=$7280FA;
Label1.OnClick:=@MinimizeClick;
end;
(А саму рамку рисует DWM Api Windows (DwmExtendFrameIntoClientArea).
[Setup]
AppName=Test
AppVerName=Test
OutputBaseFilename=Test
DefaultDirName=Test
OutputDir=userdocs:..\desktop
Uninstallable=no
[Code]
var WizardPanel:TPanel;
procedure InitializeWizard;
begin
WizardForm.Position:=poDesktopCenter;
WizardForm.BorderStyle:=bsNone;
WizardForm.ClientWidth:=ScaleX(600);
WizardForm.ClientHeight:=ScaleY(400);
WizardForm.OuterNotebook.Hide;
WizardForm.DoubleBuffered:=True;
WizardPanel:=TPanel.Create(WizardForm);
WizardPanel.Parent:=WizardForm;
WizardPanel.BevelOuter:=bvNone;
WizardPanel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(600), ScaleY(400));
WizardPanel.ParentBackground:=False;
WizardPanel.Color:=$000000;
end;
Ну лепота же, елки палки же, P.S титлбар не трогается, только цвет.В будущей версии Inno Setup (предварительно 6.6.0) планируется встроенная поддержка VCL Styles, причем вы сможете указать два стиля, один для светлой темы, другой для тёмной, которые будут применены автоматически в зависимости от настроек системной темы Windows. Информация из официальной ветки разработчика на портале GitHub (файл whatsnew.htm - перевод на русский).