Вопрос по скрипту

Socolino

Новичок
Подскажите как сделать свой курсор, но чтобы он был активен на всех окнах инсталлятора, а то у меня только на кнопках?
Код:
 ExtractTemporaryFile('MyCursor.cur')
  PathToCursorFile := ExpandConstant('{tmp}\MyCursor.cur');
  Cursor := LoadCursorFromFile(PathToCursorFile);
  SetClassLong(WizardForm.NextButton.Handle, GCL_HCURSOR, Cursor);
 

Crachlow

Старожил
Подскажите как сделать свой курсор, но чтобы он был активен на всех окнах инсталлятора, а то у меня только на кнопках?
Код:
 ExtractTemporaryFile('MyCursor.cur')
  PathToCursorFile := ExpandConstant('{tmp}\MyCursor.cur');
  Cursor := LoadCursorFromFile(PathToCursorFile);
  SetClassLong(WizardForm.NextButton.Handle, GCL_HCURSOR, Cursor);
@Socolino. Если ты хочешь взяться за создание репаков, тебе лучше, наверное начать со справки по Inno и почитать про сжатие. А так же научится пользоваться поиском по форуму, на многие вопросы уже есть ответы грамотных специалистов. Если ты берешь ответы с форума stackoverflow то нужно же читать до конца)))
Код:
[Setup]
AppVersion=1.5
AppName=My Prog
DefaultDirName=My Prog
ChangesAssociations=false
SolidCompression=no
OutputDir=.


[Files]
Source: cursor.ani; DestDir:{tmp};

[Code]
#define AW = (Defined UNICODE) ? "W" : "A"
const
  GCL_HCURSOR = (-12);
function LoadCursorFromFile(FileName: String): Cardinal; external 'LoadCursorFromFile{#AW}@user32 stdcall';
function SetClassLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetClassLong{#AW}@user32.dll stdcall';

procedure SetControlsCursor(Control: TWinControl; Cursor: LongWord);
var
  I: Integer;
begin
  SetClassLong(Control.Handle, GCL_HCURSOR, Cursor);
  for I := 0 to Control.ControlCount - 1 do
  begin
    if Control.Controls[I] is TWinControl then
    begin
      SetControlsCursor(TWinControl(Control.Controls[I]), Cursor);
    end;
  end;
end;

procedure InitializeWizard();
var
  PathToCursorFile: string;
  Cursor: LongWord;
begin
  ExtractTemporaryFile('cursor.ani')
  PathToCursorFile := ExpandConstant('{tmp}\cursor.ani');
  Cursor := LoadCursorFromFile(PathToCursorFile);
  SetClassLong(WizardForm.NextButton.Handle, GCL_HCURSOR, Cursor);
  SetControlsCursor(WizardForm, Cursor);
end;
 

Socolino

Новичок
@Socolino. Если ты хочешь взяться за создание репаков, тебе лучше, наверное начать со справки по Inno и почитать про сжатие. А так же научится пользоваться поиском по форуму, на многие вопросы уже есть ответы грамотных специалистов. Если ты берешь ответы с форума stackoverflow то нужно же читать до конца)))
Код:
[Setup]
AppVersion=1.5
AppName=My Prog
DefaultDirName=My Prog
ChangesAssociations=false
SolidCompression=no
OutputDir=.


[Files]
Source: cursor.ani; DestDir:{tmp};

[Code]
#define AW = (Defined UNICODE) ? "W" : "A"
const
  GCL_HCURSOR = (-12);
function LoadCursorFromFile(FileName: String): Cardinal; external 'LoadCursorFromFile{#AW}@user32 stdcall';
function SetClassLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetClassLong{#AW}@user32.dll stdcall';

procedure SetControlsCursor(Control: TWinControl; Cursor: LongWord);
var
  I: Integer;
begin
  SetClassLong(Control.Handle, GCL_HCURSOR, Cursor);
  for I := 0 to Control.ControlCount - 1 do
  begin
    if Control.Controls[I] is TWinControl then
    begin
      SetControlsCursor(TWinControl(Control.Controls[I]), Cursor);
    end;
  end;
end;

procedure InitializeWizard();
var
  PathToCursorFile: string;
  Cursor: LongWord;
begin
  ExtractTemporaryFile('cursor.ani')
  PathToCursorFile := ExpandConstant('{tmp}\cursor.ani');
  Cursor := LoadCursorFromFile(PathToCursorFile);
  SetClassLong(WizardForm.NextButton.Handle, GCL_HCURSOR, Cursor);
  SetControlsCursor(WizardForm, Cursor);
end;
Спасибо , да я изучаю, и всё же не на всё окно курсор 2024-12-25_140929.PNG
 

Socolino

Новичок
У меня вопрос. Подскажите как растянуть фоновое изображение на весь инсталлятор ?
На форуме искал, нету.
 

Yaroslav950

Участник
@Socolino,есть редактор форм в самом Inno setup. Может на каждой странице увеличить,как вам удобно, если нужно чтобы все расстянуть полностью,то использовать botva и прочее.
 

Socolino

Новичок
@Socolino,есть редактор форм в самом Inno setup. Может на каждой странице увеличить,как вам удобно, если нужно чтобы все расстянуть полностью,то использовать botva и прочее.
С ботвой не работал, я не знаю где инструкцию найти
 

tihiy_don

Старожил
@Socolino, в FMXInno это довольно просто делается. Там есть генератор скрипта, попробуйте с ним поиграться.
 

hitman797

Новичок

Cyberworm

Новичок
С ботвой не работал, я не знаю где инструкцию найти
На форуме есть утилита InstallDesigner для создания кастомных форм, как и в наборе FMXInno (innosetup_v5.6.1+restools_ide.exe и innosetup_v6.0.5+restools_ide.exe). Правда они служат немного для другой цели (экономят время и ничего более). Если хотите познать дзен, то лучше нарисовать пустую форму в Page := CreateCustomPage с нуля через скрипт. Методом проб и ошибок придёт понимание. В Inno Setup есть простой скрипт CodeClasses.iss с демонстрацией основных элементов. Как правило надо начинать с самого простого и не лезть сразу в дебри.
 
Сверху