-
Content Count
131 -
Joined
-
Last visited
Posts posted by sergey spb
-
-
Kotyarko_O не кул!
-
В InitializeSetup можно использовать Result := False;
Спасибо, но чёто не понял.
-
Ещё один вопрос.
Как вместо Abort прикрутить закрытие инсталлятора?
(т.е. если ДА закрывается игра, если НЕТ инсталлятор)
Function InitializeSetup1(): Boolean;
begin
if RunTask('WorldOfTanks.exe', false) then
begin
if MsgBoxEx(0, 'World of Tanks запущена!',
'Необходимо закрыть мгру!', MB_YESNO or MB_ICONQUESTION, 0, 0) = idYes then
begin
KillTask('WorldOfTanks.exe');
end
else
begin
Abort;
end;
-
Например:
Procedure InitializeWizard(); begin WizardForm.Caption := 'Не установка'; end;
Имя приложения можно вытащить из секции Setup:
WizardForm.Caption := '{#emit SetupSetting("AppName")}';
Спасибо!!!
-
Добрый день.
А как убрать (заменить) надпись: "Установка-" (сверху слева)
-
Kotyarko_O и AtotIK, Спасибо!
Отдельное спасибо - за терпение.
-
Procedure InitializeWizard1(); begin ... ... end; Procedure InitializeWizard2(); begin ... ... end; Procedure InitializeWizard(); begin InitializeWizard1(); InitializeWizard2(); end;
Спасибо!!!
Буду пробовать.
По другому:
.....
procedure RedesignWizardForm;
var
i: integer;
BtnPanel: TPanel;
BtnImage: TBitmapImage;
begin
ExtractTemporaryFile('logo.bmp')
BtnPanel:=TPanel.Create(WizardForm)
with BtnPanel do begin
Left:=1
Top:=314
Width:=46
Height:=45
Cursor:=crHand
OnClick:=@logoOnClick
Parent:=WizardForm
end;
BtnImage:=TBitmapImage.Create(WizardForm)
with BtnImage do begin
AutoSize:=True;
Enabled:=False;
Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\logo.bmp')
Parent:=BtnPanel
end;
with WizardForm do
begin
Caption := ExpandConstant('{cm:Main}');
end;
with WizardForm.WizardBitmapImage do
begin
Width := ScaleX(502);
end;
with WizardForm.WelcomeLabel2 do
begin
Visible := False;
end;
with WizardForm.WelcomeLabel1 do
begin
Visible := False;
end;
with WizardForm.WizardSmallBitmapImage do
begin
Left := ScaleX(0);
Width := ScaleX(502);
Height := ScaleY(70);
end;
with WizardForm.PageDescriptionLabel do
begin
Visible := False;
end;
with WizardForm.PageNameLabel do
begin
Visible := False;
end;
with WizardForm.WizardBitmapImage2 do
begin
Width := ScaleX(502);
end;
with WizardForm.FinishedLabel do
begin
Visible := False;
end;
with WizardForm.FinishedHeadingLabel do
begin
Visible := False;
end;
end;
procedure ShowPicHint(const PicFilePath: String);
var
pt: TPoint;
begin
if not GetCursorPos(pt) then Exit;
InfoPic.Bitmap.LoadFromFile(PicFilePath);
try
with PicForm do
begin
SetBounds(ScaleX(pt.x + 16), ScaleY(pt.y + 7), InfoPic.Width, InfoPic.Height);
Show;
end;
finally
SetFocus(WizardForm.Handle);
end;
end;
procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
var
UndefPic: String;
begin
if Index = -1 then Exit;
if Index = LastIndex then Exit;
try
//--------------------------------------------------------------------------------------------------Êàðòèíêè-----------------------------------
case TNewCheckListBox(Sender).ItemCaption[index] of
'Öèôðû': UndefPic := '1.bmp'; // ïèøåì òî÷íî òàê æå, êàê ïðîïèñàíî â êîìïîíåíòàõ
'Èêîíêè': UndefPic := '2.bmp';
'Òóíäðà': UndefPic := '3.bmp';
'Ðåíãåí': UndefPic := '4.bmp';
'Dendy': UndefPic := '5.bmp';
'Çâóêîâîå îïîâåùåíèå: äî êîíöà áîÿ,ôðàãè + ìåäàëè': UndefPic := '6.bmp';
else
begin
LastIndex := UNDEF_INDEX;
PicForm.Hide;
Exit;
end;
end;
if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic);
ShowPicHint(TempPath + UndefPic);
finally
LastIndex := Index;
end;
end;
procedure CompOnMouseLeave(Sender: TObject);
begin
PicForm.Hide;
LastIndex := -1;
end;
procedure InitInfo();
begin
WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove;
WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave;
TempPath := AddBackslash(ExpandConstant('{tmp}'));
LastIndex := UNDEF_INDEX;
PicForm := TForm.Create(WizardForm)
with PicForm do
begin
BorderStyle := bsNone;
FormStyle := fsStayOnTop;
InfoPic := TBitmapImage.Create(PicForm)
with InfoPic do
begin
Parent := PicForm;
AutoSize := True;
end;
end;
SetWindowLong(PicForm.Handle, GWL_EXSTYLE, GetWindowLong(PicForm.Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(PicForm.Handle, 0, ALPHA_BLEND_LEVEL, LWA_ALPHA);
end;
Procedure CurPageChanged(CurPageID: Integer);
var
Reg, UninstallPath: String;
ResultCode: Integer;
begin
case CurPageID of
wpSelectComponents:
begin
Reg := ExpandConstant('Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppID")}_is1');
if RegValueExists(HKLM, Reg, 'UninstallString') then
RegQueryStringValue(HKLM, Reg, 'UninstallString', UninstallPath);
if Length(UninstallPath) > 0 then
begin
case MsgBoxEx(WizardForm.Handle, 'Ðåêîìåíäóåòñÿ óäàëèòü ðàíåå óñòàíîâëåííóþ âåðñèþ ñáîðêè.' + #13#10 + 'Õîòèòå ñäåëàòü ýòî ñåé÷àñ?', 'ModPack SG', MB_YESNO or MB_ICONQUESTION, 0, 0) of
IDYES: Exec(RemoveQuotes(ExpandConstant(UninstallPath)), '/SILENT /SUPPRESSMSGBOXES', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
IDNO: Exit;
end;
end;
end;
end;
end;
Function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
case CurPageID of
wpSelectComponents:
begin
if WizardSelectedComponents(False) = '' then
begin
MsgBox('Íè îäèí èç êîìïîíåíòîâ íå âûáðàí!', mbInformation, MB_OK);
Result := False;
end;
end;
end;
end;
procedure InitializeWizard();
begin
RedesignWizardForm;
InitInfo();
RedesignWizardForm;
InitializeWizard2();
BackupCheck_1();
end;
- 1
-
Добрый вечер.
Делаю картинку внизу страницы со ссылкой:
[Files]
Source: logo.bmp; DestDir: {tmp}; Flags: dontcopy nocompression
var
LogoImage:TBitmapImage;
LogoPanel: TPanel;
LogoLabel: TLabel;procedure LogoLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http ://forum.ru-board.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;procedure InitializeWizard();
/////////////////
begin
LogoPanel := TPanel.Create(WizardForm);
with LogoPanel do
begin
Parent := WizardForm;
Left := ScaleX(8);
Top := ScaleY(327);
Width := ScaleX(120);
Height := ScaleY(28);
BevelOuter := bvNone;
end;LogoImage := TBitmapImage.Create(WizardForm);
with LogoImage do
begin
Parent := LogoPanel;
Left := ScaleX(0);
Top := ScaleY(0);
AutoSize:=true;
ReplaceColor:=clFuchsia;
ReplaceWithColor:=clBtnFace;
ExtractTemporaryFile('logo.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\logo.bmp'));
end;LogoLabel := TLabel.Create(WizardForm);
with LogoLabel do
begin
Parent := LogoPanel;
Width := LogoPanel.Width;
Height := LogoPanel.Height;
Transparent:=True;
Cursor := crHand;
OnClick:=@LogoLabelOnClick;
end;
end;Ругаеться:
-
@sergey spb, ну по твоему варианту лучше будет использовать свойство OnClickCheck.
А вообще, для работы с кнопкой "далее", лучше использовать выделенную под неё функцию:
Function NextButtonClick(CurPageID: Integer): Boolean; begin Result := True; case CurPageID of wpSelectComponents: begin if WizardSelectedComponents(False) = '' then begin MsgBox('Ни один из компонентов не выбран!', mbInformation, MB_OK); Result := False; end; end; end; end;
Большое СПАСИБО!!!
-
Добрый день!
Как добиться такого, чтобы кнопка "Далее" становилась неактивна, когда не выбран ни один компонент [Components] во время установки? Ведь нет никакого смысла ставить, если ничего не выбрано!
Делал так:
procedure ComponentOnClick(Sender: TObject);
begin
if WizardSelectedComponents(False) = '' then
WizardForm.NextButton.Enabled:= False
else WizardForm.NextButton.Enabled:= True;
end;procedure InitializeWizard();
begin
WizardForm.ComponentsList.OnClick := @ComponentOnClick;
end;но дальше первой страницы не пускает, не выбран компонент (из-за картинки не видно).
Как отключить первую страницу?
Может кому надо InnoSetupFAQ:InnoSetupFAQ_ru-board.rar
-
Не знаю, я же не вижу код. Ctrl + F поможет.
Ок, если что, завтра скину всё (если не трудо взгляни)!
А пока сам попробую.
Спасибо! Всё поменялось.
-
@sergey spb, значит кусок кода, который ты привёл, к этому чекбоксу не относится.
Спасибо!!!!
Может в "Messages.iss" прописать, или хотя бы, где искать?
-
-
Спасибо уже нашёл!
А не подскажешь как поменять надпись:
Взято от сюда:
#define SourceDir "res_mods";
#define BackupDir "old_res_mods";
[setup]
AppName=Test
AppVersion=1.5
DefaultDirName={pf}\Test
OutputDir=.
var
BackupCheck: TCheckBox;
procedure CopyFiles(FromPlace, ToPlace: String);
var
ResultCode: Integer;
begin
Exec('xcopy.exe', '/E /C /H /R /Y /F /I ' + AddQuotes(FromPlace) + ' ' + AddQuotes(ToPlace), ExpandConstant('{app}'), SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
procedure BackupCheckCreate();
begin
BackupCheck:=TCheckBox.Create(WizardForm);
with BackupCheck do
begin
Parent:=WizardForm.SelectDirPage;
SetBounds(ScaleX(WizardForm.DirEdit.Left), ScaleY(WizardForm.DirEdit.Top + 40), ScaleX(WizardForm.DirEdit.Width), ScaleY(15));
Caption:='Сохранить резервную копию перезаписываемых файлов';
Checked:=True;
end;
end;
procedure BackUp(CurStep: TSetupStep);
var
ThereIsFolders: Boolean;
begin
if BackupCheck.Checked then
begin
ThereIsFolders:=(DirExists(AddBackslash(WizardDirValue()) + '{#SourceDir}') and (not DirExists(AddBackslash(WizardDirValue()) + '{#BackupDir}')) );
if ThereIsFolders then
if CurStep=ssInstall then
begin
WizardForm.ProgressGauge.Hide;
WizardForm.StatusLabel.Caption:='Создание резервных копий файлов...';
CopyFiles(ExpandConstant('{app}') + '\{#SourceDir}\*.*', ExpandConstant('{app}') + '\{#BackupDir}');
WizardForm.ProgressGauge.Show;
WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles);
end;
end;
end;
procedure InitializeWizard();
begin
BackupCheckCreate();
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
BackUp(CurStep);
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
CopyFiles(ExpandConstant('{app}') + '\{#BackupDir}\*.*', ExpandConstant('{app}') + '\{#SourceDir}');
DelTree(ExpandConstant('{app}') + '\{#BackupDir}', True, True, True);
end;
end;
-
-
Добрый день! Проблема в установки шрифта в систему Win7:
Source: "dynamic.otf"; DestDir: "{fonts}"; Flags: onlyifdoesntexist uninsneveruninstall fontisnttruetype; FontInstall: "dynamic"; Components: Sh;
Проблема такая-же и так делал.
Сделал, вроде работает:
Source: "dynamic.otf"; DestDir: "{fonts}"; Flags: fontisnttruetype; FontInstall: "dynamic"
-
Flags: disablenouninstallwarning
Каждому компоненту.
Благодарю! Всё получилось, главное каждому компоненту!
.... всё спать.
-
-
Здесь текст, который будет отображаться в диалоговом окне:
'Рекомендуется удалить ранее установленную версию сборки.' + #13#10 + 'Хотите сделать это сейчас?',
Здесь текст заголовка окна:
'...',
Блин сорри не увидел! Ещё раз Спасибо!
-
[Code] Procedure CurStepChanged(CurStep: TSetupStep); var Reg, UninstallPath: String; ResultCode: Integer; begin if CurStep = ssInstall then begin Reg := ExpandConstant('Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppID")}_is1'); if RegValueExists(HKLM, Reg, 'UninstallString') then RegQueryStringValue(HKLM, Reg, 'UninstallString', UninstallPath); if Length(UninstallPath) > 0 then begin case MsgBoxEx(WizardForm.Handle, 'Рекомендуется удалить ранее установленную версию сборки.' + #13#10 + 'Хотите сделать это сейчас?', '...', MB_YESNO or MB_ICONQUESTION, 0, 0) of IDYES: Exec(RemoveQuotes(ExpandConstant(UninstallPath)), '/SILENT /SUPPRESSMSGBOXES', '', SW_SHOW, ewWaitUntilTerminated, ResultCode); IDNO: Exit; end; end; end; end;
Пробуй.
p.s. немного подправил.
С П А С И Б О! Я так и хотел! Ранее выбранные элементы сохраняються как активные!!!!!!!!
Тогда ещё : "Рекомендуется удалить ранее .... и т.д" как отредактировать текст?
- 1
-
Есть продвижения по теме?
Иконки:
https://cloud.mail.ru/public/a87a00fc416f/res_mod%20(кол-во%20отметок).rar
Цифры:
https://cloud.mail.ru/public/edaff4ea8a24/carousel%20new.rar
-
Flags: collapsed;
Большое СПАСИБО!!!!!
Всё получилось.
Пост: #2993, ответ: del? Ответ не понял !
-
-
-
Когда именно должен спросить и когда именно должен удалить?
Второй раз запускаешь (т.е. уже установлены какие-то файлы и "unins000.exe") и спрашивает: удалить? Если : да, то запускаеться "unins000.exe" от первой установки и удаляет все компоненты, затем идет выбор компонентов для новой (второй) установки.
Создание инсталляторов для модпаков на базе Inno Setup
in Modding General Discussion
Posted
IsTask.rar