Inno Setup (создание инсталяционных пакетов). Часть 1

Статус
В этой теме нельзя размещать новые ответы.

AlexandR

Новичок
Спасибо всем кто помог...
Вот только как сделать чтоб этот лейбел при нажатии на кнопку "Отменить" скрывался?
 

GVS276

Старожил
Проверенный
AlexandR,
NewLabel1.Hide; - Скрыть лайбел
Но при этом создай кнопку и задай обработчик...

Пример

var
NewLabel1: TLabel;
MyButton: TButton;

procedure ButtonOnClick(Sender: TObject);
begin
NewLabel1.Hide;
end;

procedure InitializeWizard();
begin
NewLabel1 := TLabel.Create(WizardForm);
with NewLabel1 do begin
Name := 'NewLabel1';
Parent := WizardForm.InstallingPage;
Transparent := True;
Caption :='Установка игры'
Font.Style:= [fsBold];
Font.Size :=15;
Left := ScaleX(192);
Top := ScaleY(180);
Width := ScaleX(500);
Height := ScaleY(500);
end;

MyButton:=TButton.Create(WizardForm);
with MyButton do begin
Parent:=WizardForm;
Width:=ScaleX(135);
Caption:='Скрыть';
Left:=ScaleX(10);
Top:=WizardForm.cancelbutton.top;
OnClick:=@ButtonOnClick;
end;
end;
Для отмены аналогично:
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm := False;
Cancel := True;
NewLabel1.Hide;
end;

или

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm := False;
Cancel := True;
if CurPageID=wpInstalling then begin
NewLabel1.Hide;
end;
end;
Можно по другому:
procedure DeinitializeSetup();
begin
NewLabel1.Hide;
end;
 
Последнее редактирование:

AlexandR

Новичок
По выше приведенных примерам у меня всеровно не получается скрыть лейбел при нажатии на кнопку "Отменить"...
Извеняюсь не досмотрел одну строчку.
 
Последнее редактирование:

GVS276

Старожил
Проверенный
AlexandR, Эмм, на код взглянуть можно?
как вы это всё делали..
 

AlexandR

Новичок
Как можно сделать чтобы перед запуском инстоллятора выходило сообщение со своим текстом?
 

Krinkels

Он где то тут
Администратор
AlexandR
Ну например так:
Код:
[Setup]
AppName=MyApp
AppverName=MyApp
DefaultDirName={pf}\MyApp

[_Code]
procedure InitializeWizard();
begin
	MsgBox('Мое сообщение', mbInformation, MB_OK);
end;
 

AlexandR

Новичок
Последнее редактирование:

GVS276

Старожил
Проверенный
AlexandR,
Можно примерчик?
Пример:
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer; external 'MessageBoxA@user32.dll stdcall';

MessageBox(0, 'Твой текст', 'Заголовок текст', MB_OK or MB_IconError)

P.S.: Иконки в гугле поищи... (MB_IconError - Иконка ошибки)
 
Последнее редактирование:

nik1967

Old Men
Проверенный
Можно примерчик?
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[_Code]
#ifdef UNICODE
  #define A "W"
#else
  #define A "A"
#endif

function MessageBox(hWnd: HWND; lpText, lpCaption: PAnsiChar; uType: LongWord): Integer;
  external 'MessageBox{#A}@user32.dll stdcall';

procedure ExampleButtonClick(Sender: TObject);
begin
  MessageBox(WizardForm.Handle,'Пример MessageBox', 'Название примера', MB_ICONINFORMATION);
end;

procedure InitializeWizard;
begin
  with TButton.Create(WizardForm) do begin
    SetBounds(ScaleX(10), WizardForm.NextButton.Top, WizardForm.NextButton.Width, WizardForm.NextButton.Height);
    Caption:='Пример';
    Parent:=WizardForm;
    OnClick:=@ExampleButtonClick;
  end;
end;
 

AlexandR

Новичок
AlexandR,Пример:
Код:
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer; external 'MessageBoxA@user32.dll stdcall';

 MessageBox(0, 'Твой текст', 'Заголовок текст', MB_OK or MB_IconError)

 P.S.: Иконки в гугле поищи... (MB_IconError - Иконка ошибки)
Ну пускай у меня есть иконка.ico, Как назначить то MB_IconError?
 
Последнее редактирование:

GVS276

Старожил
Проверенный
AlexandR, эмм насколько мне не изменяет память, то в MessageBox нельзя загружать свои иконки
 
Последнее редактирование:

AlexandR

Новичок
Как сделать Заголовок именно к этому примеру?
Код:
[Setup]
AppName=MyApp
AppverName=MyApp
DefaultDirName={pf}\MyApp

[_Code]
procedure InitializeWizard();
begin
	MsgBox('Мое сообщение', mbInformation, MB_OK);
end;
 

Krinkels

Он где то тут
Администратор
AlexandR, эмм насколько мне не изменяет память, то в MessageBox нельзя загружать свои иконки
Код:
function MbIserIcon_Ok(hWin: HWND; Caption, Text: String; IDIcon: DWORD): BOOL;
var
  MsgInfo: TMsgBoxParams;
begin
 with MsgInfo do begin
  lpfnMsgBoxCallback := nil;
  cbSize := SizeOf(TMsgBoxParams);
  hwndOwner := hWin;
  hInstance := GetWindowLong(hWin, GWL_HINSTANCE);
  lpszText := @Text[1];
  lpszCaption := @Caption[1];
  dwStyle := MB_USERICON or MB_TOPMOST or MB_OK;
  lpszIcon := MAKEINTRESOURCE(IDICON);
  dwLanguageId := GetSystemDefaultLangID;
 end;
 Result := MessageBoxIndirect(MsgInfo);
end;
Пример MessageBox со своей иконкой. На дельфи
 

AlexandR

Новичок
Попробывал пример VinTagE(Ругается на слово MB_IconError):
Код:
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer; external 'MessageBoxA@user32.dll stdcall';
procedure InitializeWizard();
begin
MessageBox(0, 'Твой текст', 'Заголовок текст', MB_OK or [COLOR="Red"]MB_IconError[/COLOR]);
end;
А если делать без него то нормально,но уже без иконки...
Код:
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer; external 'MessageBoxA@user32.dll stdcall';
procedure InitializeWizard();
begin
MessageBox(0, 'Твой текст', 'Заголовок текст', MB_OK);
end;
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху