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

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

Xabib2302

Новичок
доброе время суток.как сделать чтобы при выборе компонента "portable" были неактивными компоненты с ярлыками и были сняты галочки с них?
Код:
Name: icons; Description: {cm:AdditionalIcons}; Types: full;
Name: icons\desktop; Description: {cm:CreateDesktopIcon}; Types: full;
Name: icons\quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; OnlyBelowVersion: 0,6.1; Types: full;
Name: icons\quicklaunchicon7; Description: {cm:CreateQuickLaunchIcon}; MinVersion: 0,6.1; Types: full;
 
Последнее редактирование:

Snoopak96

Старожил
Xabib2302,
[Tasks]
Name: "portable"; Description: "portable version"; Flags: unchecked
Name: icons; Description: {cm:AdditionalIcons};
Name: icons\desktop; Description: {cm:CreateDesktopIcon};
Name: icons\quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; OnlyBelowVersion: 0,6.1;
Name: icons\quicklaunchicon7; Description: {cm:CreateQuickLaunchIcon}; MinVersion: 0,6.1;

Код:
Procedure test(Sender: TObject);
begin
if WizardForm.TasksList.Checked[0]=true then
WizardForm.TasksList.Checked[1]:=false;
end;

procedure initializewizard();
begin
WizardForm.TasksList.OnClickCheck:=@test;
end;[/QUOTE]
 

iShadow89

Мимокрокодил
Есть кто?) Помогите пожалуйста сделать кнопку, чтобы при нажатии на нее вылезал msgbox "О программе" и подскажите как ее добавить на стекляшку к iswin7.
 

vint56

Ветеран
Проверенный
iShadow89
var
NewButton1: TNewButton;

procedure NewButton1Click(Sender: TObject);
begin
MsgBox('О программе ', mbInformation, MB_OK);
end;

procedure iswin7_add_glass(Handle:HWND; Left, Top, Right, Bottom : Integer; GDIPLoadMode: boolean);
external 'iswin7_add_glass@files:iswin7.dll stdcall';

procedure iswin7_add_button(Handle:HWND);
external 'iswin7_add_button@files:iswin7.dll stdcall';

procedure iswin7_free;
external 'iswin7_free@files:iswin7.dll stdcall';

procedure InitializeWizard();
begin
NewButton1 := TNewButton.Create(WizardForm);
with NewButton1 do
begin
Parent := WizardForm;
Left := ScaleX(32);
Top := ScaleY(327);
Width := ScaleX(75);
Height := ScaleY(25);
Caption := ' О программе ';
OnClick:=@NewButton1Click
end;
// Необходимо добавлять каждую кнопку расположенную на стекле
// до инициализации стекла для того что бы не было дыр ))
iswin7_add_button(WizardForm.BackButton.Handle);
iswin7_add_button(WizardForm.NextButton.Handle);
iswin7_add_button(WizardForm.CancelButton.Handle);
iswin7_add_button(NewButton1.Handle);
// Параметр True не трогать он для htuos ))
iswin7_add_glass(WizardForm.Handle, 0, 0, 0, 47, True);
end;

procedure DeinitializeSetup();
begin
iswin7_free;
end;
 
  • Like
Реакции: Adil

MAKS_MAFIA

Новичок
Привет всем. Как сделать так, чтобы при наведении на компонент показывалась картинка.
 

Snoopak96

Старожил
MAKS_MAFIA,
Я не пользуюсь вашими расширенками с некоторых пор, мог просто погуглить, это создание формы с загруженной картинкой на неё при при событии OnItemMouseMove
forum.oszone.net/post-2276486.html#post2276486
 

Shift85

Старожил
Никто не подскажет код вставки изображения через ботву (желательно полный код для вставки одного изображения) {на примерах не разобрался}
 

vint56

Ветеран
Проверенный
Shift85
[Setup]
AppName=My Program
AppVersion=1.5
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

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

[Icons]
Name: {group}\My Program; Filename: {app}\MyProg.exe

[Files]
Source: InstallFiles\botva2.dll; DestDir: {tmp}
Source: InstallFiles\Welcome.png; DestDir: {tmp}

Код:
var
Welcome: Longint;

function ImgLoad(Wnd :HWND; FileName: PAnsiChar; Left, Top, Width, Height :integer; Stretch, IsBkg :boolean) :Longint; external 'ImgLoad@{tmp}\botva2.dll stdcall delayload';
procedure ImgSetPosition(img :Longint; NewLeft, NewTop, NewWidth, NewHeight :integer); external 'ImgSetPosition@{tmp}\botva2.dll stdcall delayload';
procedure ImgRelease(img :Longint); external 'ImgRelease@{tmp}\botva2.dll stdcall delayload';
procedure ImgSetVisibility(img :Longint; Visible :boolean); external 'ImgSetVisibility@{tmp}\botva2.dll stdcall delayload';
function ImgGetVisibility(img:Longint):boolean; external 'ImgGetVisibility@{tmp}\botva2.dll stdcall delayload';
procedure ImgApplyChanges(h:HWND); external 'ImgApplyChanges@{tmp}\botva2.dll stdcall delayload';
procedure gdipShutdown;  external 'gdipShutdown@{tmp}\botva2.dll stdcall delayload';

function InitializeSetup: Boolean;
begin
  if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
  Result:=True;
end;

procedure InitializeWizard;
begin
  WizardForm.WelcomeLabel1.hide;
  WizardForm.WelcomeLabel2.hide;
  WizardForm.WizardBitmapImage.hide;
  ExtractTemporaryFile('Welcome.png');
  Welcome:=ImgLoad(WizardForm.WelcomePage.Handle,ExpandConstant('{tmp}\Welcome.png'),ScaleX(0), ScaleY(0),ScaleX(508),ScaleY(313),True,True);
  ImgApplyChanges(WizardForm.WelcomePage.Handle);
end;

procedure ShowComponents(CurPageID: Integer);
begin
  case CurPageID of
  wpWelcome: begin
  ImgSetVisibility(Welcome,True);
  end;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  ImgSetVisibility(Welcome,False);
  ShowComponents(CurPageID);
  ImgApplyChanges(WizardForm.Handle);
end;

procedure DeInitializeSetup();
begin
  gdipShutdown;
end;
[/SPOILER]
 

vint56

Ветеран
Проверенный
Shift85 у тебя там ExpandConstant должен так а у тебя Exp andConstant
 

Shift85

Старожил
vint56, Спасибо большое :up: а на последнею страницу типа етого да
 

vint56

Ветеран
Проверенный
Shift85
[Setup]
AppName=My Program
AppVersion=1.5
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program


[Files]
Source: InstallFiles\botva2.dll; DestDir: {tmp}; Flags: dontcopy;
Source: InstallFiles\Finished.png; DestDir: {tmp}; Flags: dontcopy;

Код:
var
Finished: Longint;

function ImgLoad(Wnd :HWND; FileName: PAnsiChar; Left, Top, Width, Height :integer; Stretch, IsBkg :boolean) :Longint; external 'ImgLoad@{tmp}\botva2.dll stdcall delayload';
procedure ImgSetPosition(img :Longint; NewLeft, NewTop, NewWidth, NewHeight :integer); external 'ImgSetPosition@{tmp}\botva2.dll stdcall delayload';
procedure ImgRelease(img :Longint); external 'ImgRelease@{tmp}\botva2.dll stdcall delayload';
procedure ImgSetVisibility(img :Longint; Visible :boolean); external 'ImgSetVisibility@{tmp}\botva2.dll stdcall delayload';
function ImgGetVisibility(img:Longint):boolean; external 'ImgGetVisibility@{tmp}\botva2.dll stdcall delayload';
procedure ImgApplyChanges(h:HWND); external 'ImgApplyChanges@{tmp}\botva2.dll stdcall delayload';
procedure gdipShutdown;  external 'gdipShutdown@{tmp}\botva2.dll stdcall delayload';

function InitializeSetup: Boolean;
begin
 if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
 if not FileExists(ExpandConstant('{tmp}\Finished.png')) then ExtractTemporaryFile('Finished.png');
 Result:=True;
end;

procedure InitializeWizard;
begin
 WizardForm.WizardBitmapImage2.hide;
 WizardForm.FinishedHeadingLabel.Hide;
 WizardForm.FinishedLabel.Hide;
 Finished:=ImgLoad(WizardForm.FinishedPage.Handle,ExpandConstant('{tmp}\Finished.png'),ScaleX(0), ScaleY(0),ScaleX(508),ScaleY(313),True,True);
 ImgApplyChanges(WizardForm.FinishedPage.Handle);
end;

procedure ShowComponents(CurPageID: Integer);
begin
 case CurPageID of
 wpWelcome: begin
 ImgSetVisibility(Finished,True);
 end;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
 ImgSetVisibility(Finished,False);
 ShowComponents(CurPageID);
 ImgApplyChanges(WizardForm.Handle);
end;

procedure DeInitializeSetup();
begin
 gdipShutdown;
end;[/SPOILER]
 

vint56

Ветеран
Проверенный
MAKS_MAFIA
#include "botva2.iss"
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[Files]
Source: botva2.dll; DestDir: {tmp}
Source: logo.png; DestDir: {tmp}

Код:
var
LogoLabel: TLabel;
MyLogo: Longint;

function InitializeSetup:boolean;
begin
  if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
  Result:=True;
end;

procedure LogoLabelOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'http://krinkels.org/showthread.php?p=19000#post19000', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;

procedure InitializeWizard();
begin
ExtractTemporaryFile('logo.png');
MyLogo:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\logo.png'), ScaleX(10), ScaleY(315), ScaleX(175), ScaleY(39), False, False);
ImgApplyChanges(WizardForm.Handle);
LogoLabel := TLabel.Create(WizardForm);
with LogoLabel do
 begin
  Parent := WizardForm;
  Left:= ScaleX(10);
  Top:= ScaleY(315)
  Width := ScaleX(175);
  Height := ScaleY(39);
  Transparent:=True;
  Cursor := crHand;
  OnClick:=@LogoLabelOnClick;
 end;
end;

procedure DeinitializeSetup;
begin
  gdipShutdown;
end;[/SPOILER]

[SPOILER="Пример Лого"][Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Languages]
Name: english; MessagesFile: compiler:Default.isl

[Files]
Source: Files\GLogo.png; DestDir: {tmp}; Flags: dontcopy;
Source: Files\botva2.dll; DestDir: {tmp}; Flags: dontcopy;
Source: Files\b2p.dll; DestDir: {tmp}; Flags: dontcopy;

[Code]
var
CreateLogo: Longint;
#include "Modules\botva2.iss"

function InitializeSetup:boolean;
begin
   if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
   if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
   Result:=True;
end;

procedure LogoLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://krinkels.org/showthread.php?t=901&page=2', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;

procedure InitializeWizard;
begin 
  CreateLogo:= ImgLoad(WizardForm.handle, ExpandConstant('GLogo.png'), ScaleX(5), ScaleY(325), ScaleX(170), ScaleY(34), True, True);
  ImgApplyChanges(WizardForm.Handle);
 
  with TLabel.Create(WizardForm) do begin
    Parent:=WizardForm;
    AutoSize:=False;
    Transparent:= true;
    SetBounds(ScaleX(5), ScaleY(325), ScaleX(170), ScaleY(34));
    OnClick:=@LogoLabelOnClick;
    Cursor:= CrHand;
  end;
end;

procedure DeinitializeSetup();
begin
  gdipShutdown;
end;[/SPOILER]
 
Последнее редактирование:

vint56

Ветеран
Проверенный
Shift85 Как убрать следующее черный фон вот пример
http://rghost.ru/51216817

// пропуск страниц
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = 10) then
Result:= True;
end;
 
Последнее редактирование:

Carlos

Участник
Модератор
Подскажите пожалуйста возможно ли сделать, чтобы на кнопку открывался текстовый файл.
Например: наряду с кнопками "Вперёд", "Назад", "Отмена" будет кнопка "О программе " и, нажимая на неё, открывалось бы не отдельное окно, как у многих, а текстовый документ?
 

vint56

Ветеран
Проверенный
Carlos
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

Код:
var
About: TNewButton;
ResultCode: Integer;

procedure AboutClick(Sender: TObject);
begin
  ShellExec('open', ExpandConstant('{src}\readme.txt'),'','', SW_SHOW, ewNoWait, ResultCode)
end;


procedure InitializeWizard();
begin
  About := TNewButton.Create(WizardForm);
  with About do
  begin
    Parent := WizardForm;
    Left := ScaleX(16);
    Top := ScaleY(325);
    Width := ScaleX(75);
    Height := ScaleY(25);
    Caption := 'О программе';
    OnClick := @AboutClick;
  end;
end;[/SPOILER]
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху