Inno Setup VCL

Leserg

Участник
В скрытии пункта About Setup...
Так его можно скрыть по-другому.
code_language.pascal:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={ autopf }\My Application
OutputDir=.

[Code]
// Функции удаление в инсталляторе пункта меню "О программе..."
function AppendMenu(hMenu: HMENU; uFlags, uIDNewItem: UINT; lpNewItem: String): BOOL;
  external 'AppendMenuW@user32.dll stdcall';
function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU;
  external 'GetSystemMenu@user32.dll stdcall';

const
  MF_DELETE = $200;

procedure InitializeWizard();
begin
  // Удаление пункта меню "О программе"
  AppendMenu(GetSystemMenu(Wizardform.Handle, True), MF_DELETE, 0, SetupMessage(msgAboutSetupMenuItem));
end;

Испытываю трудности в применении этой функции
Вот блин!
Теперь эти функции не работают. :$
 

Cyberworm

Новичок
Ещё бы хотелось увидеть функцию Blend on move (активное затемнение) при перемещении основной формы окна инсталлятора, если это возможно реализовать.
 

Leserg

Участник
Встроенным способом намного проще и привычней.
Это не встроенный способ, а ошибка из-за неверной инициализации формы.
Её в любой момент могут закрыть. Лучше использовать легальные способы.

А реально добавить Ваши расширенные функции в подсказки при наборе?
Реально, но тогда многое придется переделывать.
Раньше-то такой функциональности в редакторе не было.
 

Leserg

Участник
Ещё бы хотелось увидеть функцию Blend on move
Пока нет.
У меня нет достаточных знаний и опыта, чтобы сделать это самостоятельно.
Примеров с реализацией подобного функционала я сети не нашел, поэтому отложено на неопределённый срок.
Надеюсь на понимание.
 
Последнее редактирование:

Crachlow

Старожил
@Leserg. В вашей сборке Inno 633EE, при подключении vcl стилей происходит то же самое что и в фмх, на некоторое время появляется окно с пустой формой. Example_BackgroundFormAndNC.iss. В 6.40 так же? Этого не избежать? Второй вопрос, а зачем mainform нужно было вообще убирать?
 

ZVSRus

Участник
Leserg. А можно ли в вашей сборке к компоненту TNewStaticText сделать выравнивание текста по ширине (Alignment) и по высоте (Layout), ну то есть как реализовано у компонента TLabel.
И ещё хотелось бы, когда включена прозрачность у TNewStaticText (Transparent := True) чтобы цвет текста можно было бы менять.
Ну всё то что реализовано у компонента TLabel.
 

Leserg

Участник
В своем основном скрипте получаю такие ошибки
Вернул обратно предыдущую сборку (т.е. начальную), т.к. в этой "исправленной" полезли другие ошибки.
Как их устранить не понимаю. Возможно вообще придется отказаться от тени для VCL Style или, по крайней мере, только для главной формы.
Пока что, если применяете WizardForm.Position := poScreenCenter, то отключайте тень для главной формы.

при подключении vcl стилей происходит то же самое что и в фмх, на некоторое время появляется окно с пустой формой.
Это мелькает окно тени для VCL Style. Да это побочный эффект применения тени для окон с VCL Style.
Тень для главного окна можно отключить так
code_language.pascal:
ShadowFormOnOff(WizardForm, WizardFormShadow, False);
или так
code_language.pascal:
WizardFormShadow.ShadowOn := False;
Одну из этих команд укажите в процедуре InitializeWizard().

Это равноценно для обеих последних сборок Inno Setup VCL 6.3.3 и 6.4.0.

Этого не избежать?
Как только что было сказано выше - отключите тень для главной формы.
Можете потом её снова включить, когда закончится инициализация главной формы.
То есть в начале InitializeWizard() отключаете, а конце включаете.
code_language.pascal:
procedure InitializeWizard();
begin
  // Отключаем видимость тени для главной формы
  WizardFormShadow.ShadowOn := False;
 
  ...
  // остальной код...
  ...

  // Включаем видимость тени для главной формы
  WizardFormShadow.ShadowOn := True;
end;
Попробуйте и сообщите результат.

а зачем mainform нужно было вообще убирать?
Это вопрос к разбработчику. Как говорит Джордан (автор и ведущий разработчик), "это древний функционал родом из 90гг прошлого века, который не соответствует современным стандартам установки, поэтому был полностью удалён, окончательно и безвозвратно."

А можно ли в вашей сборке к компоненту TNewStaticText сделать выравнивание текста по ширине (Alignment)
Ну что сказать... Это свойство у компонента есть ещё с самого начала, когда приступил к разработке Inno Setup VCL, но по какой-то причие я это свойство пропустил и не объявил. То есть свойство есть, а доступа к нему нету - исправлю.

И ещё хотелось бы, когда включена прозрачность у TNewStaticText (Transparent := True) чтобы цвет текста можно было бы менять.
Такое же поведение имеет стандартный компонент TStaticText. Как его изменить - не знаю. Возможно это баг Delphi, а может быть так и задумано.

Ну всё то что реализовано у компонента TLabel.
Ну так используйте TLabel, где вам необходимо!
Поймите, что TNewStaticText (TStaticText) и TLabel это наследники разных классов! То что есть в TLabel нельзя вот так просто и запихнуть в TStaticText. Иначе был бы только один компонент без всего этого разнообразия.
 

tihiy_don

Старожил
@Leserg. В вашей сборке Inno 633EE, при подключении vcl стилей происходит то же самое что и в фмх, на некоторое время появляется окно с пустой формой. Example_BackgroundFormAndNC.iss. В 6.40 так же? Этого не избежать? Второй вопрос, а зачем mainform нужно было вообще убирать?
Мелькает в FMX только на пустой форме. На имейдж форме такого нет. И то там мелькание не у всех проявляется.
 
Сверху