Ekspoint 2,122 #200238 Posted July 18, 2014 Странно, что там такое вообще есть. Ща проверю.. Проверил (специально для этого скачал). 'Ну и где же пункт "восстановить сделанный ранее бекап" ?' 18.071.jpg я перепутал оно есть в сборке от EXPROMT_MAX вот а после того как сделал бекап появилось такое и как делается бекап с помощью такой проги не понимаю Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #200242 Posted July 18, 2014 (edited) и как делается бекап с помощью такой проги не понимаю Как не понимаешь? Я же тебя спрашивал, есть ли у тебя код бекапа, ты сказал: да. Восстановление бекапа делается обратным способом. А само наличие пунктов "восстановить бекап", "удалить бекап" делается через процедуру CurStepChenged, а в ней идёт проверка DirExists. И уже в зависимости от того, присутствует ли бекап в папке с игрой, делается действие: показывать или нет эти пункты. Edited July 18, 2014 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #200259 Posted July 18, 2014 Как не понимаешь? Я же тебя спрашивал, есть ли у тебя код бекапа, ты сказал: да. Восстановление бекапа делается обратным способом. А само наличие пунктов "восстановить бекап", "удалить бекап" делается через процедуру CurStepChenged, а в ней идёт проверка DirExists. И уже в зависимости от того, присутствует ли бекап в папке с игрой, делается действие: показывать или нет эти пункты. и как сделать эти пункты? Quote Share this post Link to post Short link Share on other sites
ventura69 34 #200304 Posted July 19, 2014 Именно такой тебе не нужен. Пункт "Восстановить резервную копию файлов" при установке ни к чему. @ventura69 делал этот скрипт для отдельной от установщика программы (типо расширенного деинсталлятора). Может, тебе просто нужен код бекапа? На самом деле я восстановление все же добавил в инсталлятор. Только прописал делать бекап (если он выбран) по завершении всей работы инсталлятора. То есть, если пользователь все же по глупости навыбирает моды для установки при выборе бекапа, эти моды инсталлятор засунет ему на комп, но после все равно сделает бекап. Применимо к моему инсталлятору этот вариант посчитал наиболее удачным. Quote Share this post Link to post Short link Share on other sites
-zav- 188 #200325 Posted July 19, 2014 На самом деле я восстановление все же добавил в инсталлятор. Только прописал делать бекап (если он выбран) по завершении всей работы инсталлятора. То есть, если пользователь все же по глупости навыбирает моды для установки при выборе бекапа, эти моды инсталлятор засунет ему на комп, но после все равно сделает бекап. Применимо к моему инсталлятору этот вариант посчитал наиболее удачным. А если ктото случайно галку жмакнет и не заметит, а потом будет голову ломать почему моды не встали. Quote Share this post Link to post Short link Share on other sites
ventura69 34 #200339 Posted July 19, 2014 А если ктото случайно галку жмакнет и не заметит, а потом будет голову ломать почему моды не встали. Значит следующий раз будет внимательнее следить за тем, что его руки творят! Всегда считал, что прежде, чем что-то делать, надо думать :-) Quote Share this post Link to post Short link Share on other sites
Наталья19 0 #200433 Posted July 19, 2014 Точнее: res_mods\xvm\configs\вот_это_имя. Так-то я понял, что вы хотите. А если у пользователя окажется однофайловый конфиг? это исключено, меня интересует именно то, что я спросила Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #200445 Posted July 19, 2014 это исключено, меня интересует именно то, что я спросила Не, не знаю. Рой в сторону процедуры FindFirst. 1 Quote Share this post Link to post Short link Share on other sites
Andrew_Dark 8 #200479 Posted July 20, 2014 почему выдаёт ошибку что XVMTOKENLABEL неизвестный идентификатор??? #include "SHFileOperation.iss" varBackupPage: TWizardPage;DeleteRadioButton, MoveRadioButton, NoneRadioButton: TNewRadioButton;constBackupDescText ='Âî èçáåæàíèå ïðîáëåì è êîíôëèêòîâ ìåæäó ìîäèôèêàöèÿìè, ðåêîìåíäóåòñÿ óäàëèòü âñå óñòàíîâëåííûå íà äàííûé ìîìåíò ìîäû êëèåíòà.';DeleteDescText ='Óñòàíîâùèê î÷èñòèò ïàïêó res_mods è óñòàíîâèò íîâûå ìîäèôèêàöèè.';MoveDescText ='Óñòàíîâùèê ñäåëàåò ðåçåðâíóþ êîïèþ âñåõ ôàéëîâ â ïàïêå res_mods.';NoneDescText ='Óñòàíîâùèê óñòàíîâèò íîâûå ìîäû ïîâåðõ ñòàðûõ.';function BackupCheck_1(): Boolean;varBackupDescLabel, DeleteDescLabel, MoveDescLabel, NoneDescLabel: TLabel;beginBackupPage:=CreateCustomPage(wpWelcome, 'Ñîçäàíèå ðåçåðâíûõ êîïèé ôàéëîâ ïåðåä óñòàíîâêîé', 'Ïîæàëóéñòà, ïðî÷òèòå ñëåäóþùóþ âàæíóþ èíôîðìàöèþ ïåðåä òåì, êàê ïðîäîëæèòü.');BackupDescLabel:=TLabel.Create(WizardForm);BackupDescLabel.Parent:=BackupPage.Surface;BackupDescLabel.Left:=ScaleX(40);BackupDescLabel.Top:=ScaleY(10);BackupDescLabel.Width:=BackupPage.SurfaceWidth;BackupDescLabel.Height:=90;BackupDescLabel.AutoSize:=False;BackupDescLabel.Wordwrap:=True;BackupDescLabel.Caption:=BackupDescText;DeleteRadioButton:=TNewRadioButton.Create(WizardForm);DeleteRadioButton.Parent:=BackupPage.Surface;DeleteRadioButton.Checked:=True;DeleteRadioButton.Top:=105;DeleteRadioButton.Left:=110;DeleteRadioButton.Width:=BackupPage.SurfaceWidth;DeleteRadioButton.Font.Style:=[fsBold];DeleteRadioButton.Font.Size:=9;DeleteRadioButton.Caption:='Óäàëèòü ìîäû'DeleteDescLabel:=TLabel.Create(WizardForm);DeleteDescLabel.Parent:=BackupPage.Surface;DeleteDescLabel.Left:=110;DeleteDescLabel.Top:=DeleteRadioButton.Top + DeleteRadioButton.Height + 4;DeleteDescLabel.Width:=BackupPage.SurfaceWidth;DeleteDescLabel.Height:=40;DeleteDescLabel.AutoSize:=False;DeleteDescLabel.Wordwrap:=True;DeleteDescLabel.Caption:=DeleteDescText;MoveRadioButton:=TNewRadioButton.Create(WizardForm);MoveRadioButton.Parent:=BackupPage.Surface;MoveRadioButton.Checked:=False;MoveRadioButton.Top:=180;MoveRadioButton.Left:=110;MoveRadioButton.Width:=BackupPage.SurfaceWidth;MoveRadioButton.Font.Style:=[fsBold];MoveRadioButton.Font.Size:=9;MoveRadioButton.Caption:='Ñäåëàòü ðåçåðâíóþ êîïèþ âñåõ ìîäîâ'MoveDescLabel:=TLabel.Create(WizardForm);MoveDescLabel.Parent:=BackupPage.Surface;MoveDescLabel.Left:=110;MoveDescLabel.Top:=MoveRadioButton.Top + MoveRadioButton.Height + 4;MoveDescLabel.Width:=BackupPage.SurfaceWidth;MoveDescLabel.Height:=40;MoveDescLabel.AutoSize:=False;MoveDescLabel.Wordwrap:=True;MoveDescLabel.Caption:=MoveDescText;NoneRadioButton:=TNewRadioButton.Create(WizardForm);NoneRadioButton.Parent:=BackupPage.Surface;NoneRadioButton.Checked:=False;NoneRadioButton.Top:=255;NoneRadioButton.Left:=110;NoneRadioButton.Width:=BackupPage.SurfaceWidth;NoneRadioButton.Font.Style:=[fsBold];NoneRadioButton.Font.Size:=9;NoneRadioButton.Caption:='Íè÷åãî íå òðîãàòü'NoneDescLabel:=TLabel.Create(WizardForm);NoneDescLabel.Parent:=BackupPage.Surface;NoneDescLabel.Left:=110;NoneDescLabel.Top:=NoneRadioButton.Top + NoneRadioButton.Height + 4;NoneDescLabel.Width:=BackupPage.SurfaceWidth;NoneDescLabel.Height:=40;NoneDescLabel.AutoSize:=False;NoneDescLabel.Wordwrap:=True;NoneDescLabel.Caption:=NoneDescText;end;function BackupCheck_2(): Boolean;beginIf DeleteRadioButton.Checked thenbeginDelTree(ExpandConstant('{app}\res_mods\{#Patch}'), True, True, True);DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True);CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));end;end;function BackupCheck_3(): Boolean;beginIf MoveRadioButton.Checked thenbeginMoveDir(ExpandConstant('{app}\res_mods\{#Patch}\'),ExpandConstant('{app}\res_mods\backup\{#Patch}'));MoveDir(ExpandConstant('{app}\res_mods\xvm\'),ExpandConstant('{app}\res_mods\backup\xvm'));CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True);end;end;procedure CurStepChanged1(CurStep: TSetupStep);beginIf CurStep=ssInstall thenbeginBackupCheck_2();BackupCheck_3();end;end;procedure InitializeWizard1();beginBackupCheck_1();end;////////////VarXVMTokenButton: TNewCheckBox;Procedure TokenCheckButton(Sender: TObject);beginif FileExists(ExpandConstant('{app}\tokens.xdb')) = false thenbeginXVMTokenButton.Caption:='Ñîõðàíèòü õâì-òîêåí (ïóíêò íåäîñòóïåí, ïîäðîáíîñòè íèæå).';XVMTokenButton.Enabled:=False;XVMTokenButton.Checked:=False;XVMTokenLabel.Caption:='Ïàïêà ñ òîêåíîì àêòèâàöèè ñòàòèñòèêè íå íàéäåíà.';XVMTokenLabel.Font.Color:=clGray;end;if FileExists(ExpandConstant('{app}\tokens.xdb')) = true thenbeginXVMTokenButton.Caption:='Ñîõðàíèòü õâì-òîêåí (òîêåí äîñòóïåí).';XVMTokenButton.Checked:=True;XVMTokenButton.Enabled:=True;XVMTokenLabel.Caption:='Ñîõðàíèòü ïàïêó ñ òîêåíîì àêòèâàöèè ñòàòèñòèêè.';XVMTokenLabel.Font.Color:=clBlack;end;end;Function Backup: Boolean;varBackupPage: TWizardPage;DeleteRadioButton, MoveRadioButton, NoneRadioButton: TNewRadioButton;BackupBox: TListBox;TokenCheck: TButton;BackupDescLabel, DeleteDescLabel, MoveDescLabel, NoneDescLabel, XVMTokenLabel: TLabel;begin/////////////òóò îñíîâíîé êîä áåêàïà\\\\\\\\\\\\\\\\XVMTokenButton:=TNewCheckBox.Create(WizardForm);XVMTokenButton.Parent:=BackupPage.Surface;XVMTokenButton.State:=cbUnchecked;XVMTokenButton.Top:=221;XVMTokenButton.Left:=4;XVMTokenButton.Width:=BackupPage.SurfaceWidth - 5;XVMTokenButton.Font.Style:=[fsBold];XVMTokenButton.Font.Size:=9;XVMTokenButton.Caption:='Ñîõðàíèòü õâì-òîêåí (ïðîâåðüòå åãî íàëè÷èå).';XVMTokenButton.Enabled:=False;XVMTokenLabel:=TLabel.Create(WizardForm);XVMTokenLabel.Parent:=BackupPage.Surface;XVMTokenLabel.Left:=18;XVMTokenLabel.Top:= XVMTokenButton.Top + XVMTokenButton.Height + 4;XVMTokenLabel.Width:=BackupPage.SurfaceWidth;XVMTokenLabel.Height:=40;XVMTokenLabel.AutoSize:=False;XVMTokenLabel.Wordwrap:=True;XVMTokenLabel.Caption:='Äëÿ ïðîâåðêè òîêåíà àêòèâàöèè ñòàñòèêè íàæìèòå êíîïêó íèæå.';XVMTokenLabel.Font.Color:=clGray;TokenCheck := TButton.Create(WizardForm);TokenCheck.Parent := BackupPage.Surface;TokenCheck.Top := 264;TokenCheck.Left := 143;TokenCheck.Width := 200;TokenCheck.Height := 23;TokenCheck.Caption := 'Ïðîâåðèòü íàëè÷èå òîêåíà';TokenCheck.Font.Size := 10;TokenCheck.Font.Style := [fsBold];TokenCheck.onClick := @TokenCheckButton;end;Function XVMTokenButton_1(): Boolean;beginIf XVMTokenButton.Checked thenbeginCreateDir(ExpandConstant('{app}\dbTEMP'));CopyDir(ExpandConstant('{app}\res_mods\xvm\db'),ExpandConstant('{app}\dbTEMP'));end;end;Function XVMTokenButton_2(): Boolean;beginIf XVMTokenButton.Checked thenbeginCreateDir(ExpandConstant('{app}\res_mods\xvm'));MoveDir(ExpandConstant('{app}\dbTEMP\db'),ExpandConstant('{app}\res_mods\xvm'));DelTree(ExpandConstant('{app}\dbTEMP'), True, True, True);end;end;procedure InitializeWizard2();beginBackup;end;Procedure CurStepChanged2(CurStep: TSetupStep);beginIf CurStep=ssInstall thenbeginXVMTokenButton_1();end;end;Procedure CurStepChanged3(CurStep: TSetupStep);beginIf CurStep=ssPostInstall thenbeginXVMTokenButton_2();end;end;Procedure CurStepChanged(CurStep: TSetupStep);beginCurStepChanged1(CurStep);CurStepChanged2(CurStep);CurStepChanged3(CurStep);end; Quote Share this post Link to post Short link Share on other sites
-zav- 188 #200495 Posted July 20, 2014 почему выдаёт ошибку что XVMTOKENLABEL неизвестный идентификатор??? #include "SHFileOperation.iss" varBackupPage: TWizardPage;DeleteRadioButton, MoveRadioButton, NoneRadioButton: TNewRadioButton; constBackupDescText ='Âî èçáåæàíèå ïðîáëåì è êîíôëèêòîâ ìåæäó ìîäèôèêàöèÿìè, ðåêîìåíäóåòñÿ óäàëèòü âñå óñòàíîâëåííûå íà äàííûé ìîìåíò ìîäû êëèåíòà.';DeleteDescText ='Óñòàíîâùèê î÷èñòèò ïàïêó res_mods è óñòàíîâèò íîâûå ìîäèôèêàöèè.';MoveDescText ='Óñòàíîâùèê ñäåëàåò ðåçåðâíóþ êîïèþ âñåõ ôàéëîâ â ïàïêå res_mods.';NoneDescText ='Óñòàíîâùèê óñòàíîâèò íîâûå ìîäû ïîâåðõ ñòàðûõ.'; function BackupCheck_1(): Boolean;varBackupDescLabel, DeleteDescLabel, MoveDescLabel, NoneDescLabel: TLabel;beginBackupPage:=CreateCustomPage(wpWelcome, 'Ñîçäàíèå ðåçåðâíûõ êîïèé ôàéëîâ ïåðåä óñòàíîâêîé', 'Ïîæàëóéñòà, ïðî÷òèòå ñëåäóþùóþ âàæíóþ èíôîðìàöèþ ïåðåä òåì, êàê ïðîäîëæèòü.');BackupDescLabel:=TLabel.Create(WizardForm);BackupDescLabel.Parent:=BackupPage.Surface;BackupDescLabel.Left:=ScaleX(40);BackupDescLabel.Top:=ScaleY(10);BackupDescLabel.Width:=BackupPage.SurfaceWidth;BackupDescLabel.Height:=90;BackupDescLabel.AutoSize:=False;BackupDescLabel.Wordwrap:=True;BackupDescLabel.Caption:=BackupDescText; DeleteRadioButton:=TNewRadioButton.Create(WizardForm);DeleteRadioButton.Parent:=BackupPage.Surface;DeleteRadioButton.Checked:=True;DeleteRadioButton.Top:=105;DeleteRadioButton.Left:=110;DeleteRadioButton.Width:=BackupPage.SurfaceWidth;DeleteRadioButton.Font.Style:=[fsBold];DeleteRadioButton.Font.Size:=9;DeleteRadioButton.Caption:='Óäàëèòü ìîäû'DeleteDescLabel:=TLabel.Create(WizardForm);DeleteDescLabel.Parent:=BackupPage.Surface;DeleteDescLabel.Left:=110;DeleteDescLabel.Top:=DeleteRadioButton.Top + DeleteRadioButton.Height + 4;DeleteDescLabel.Width:=BackupPage.SurfaceWidth;DeleteDescLabel.Height:=40;DeleteDescLabel.AutoSize:=False;DeleteDescLabel.Wordwrap:=True;DeleteDescLabel.Caption:=DeleteDescText; MoveRadioButton:=TNewRadioButton.Create(WizardForm);MoveRadioButton.Parent:=BackupPage.Surface;MoveRadioButton.Checked:=False;MoveRadioButton.Top:=180;MoveRadioButton.Left:=110;MoveRadioButton.Width:=BackupPage.SurfaceWidth;MoveRadioButton.Font.Style:=[fsBold];MoveRadioButton.Font.Size:=9;MoveRadioButton.Caption:='Ñäåëàòü ðåçåðâíóþ êîïèþ âñåõ ìîäîâ'MoveDescLabel:=TLabel.Create(WizardForm);MoveDescLabel.Parent:=BackupPage.Surface;MoveDescLabel.Left:=110;MoveDescLabel.Top:=MoveRadioButton.Top + MoveRadioButton.Height + 4;MoveDescLabel.Width:=BackupPage.SurfaceWidth;MoveDescLabel.Height:=40;MoveDescLabel.AutoSize:=False;MoveDescLabel.Wordwrap:=True;MoveDescLabel.Caption:=MoveDescText; NoneRadioButton:=TNewRadioButton.Create(WizardForm);NoneRadioButton.Parent:=BackupPage.Surface;NoneRadioButton.Checked:=False;NoneRadioButton.Top:=255;NoneRadioButton.Left:=110;NoneRadioButton.Width:=BackupPage.SurfaceWidth;NoneRadioButton.Font.Style:=[fsBold];NoneRadioButton.Font.Size:=9;NoneRadioButton.Caption:='Íè÷åãî íå òðîãàòü'NoneDescLabel:=TLabel.Create(WizardForm);NoneDescLabel.Parent:=BackupPage.Surface;NoneDescLabel.Left:=110;NoneDescLabel.Top:=NoneRadioButton.Top + NoneRadioButton.Height + 4;NoneDescLabel.Width:=BackupPage.SurfaceWidth;NoneDescLabel.Height:=40;NoneDescLabel.AutoSize:=False;NoneDescLabel.Wordwrap:=True;NoneDescLabel.Caption:=NoneDescText;end; function BackupCheck_2(): Boolean;beginIf DeleteRadioButton.Checked thenbeginDelTree(ExpandConstant('{app}\res_mods\{#Patch}'), True, True, True);DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True);CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));end;end; function BackupCheck_3(): Boolean;beginIf MoveRadioButton.Checked thenbeginMoveDir(ExpandConstant('{app}\res_mods\{#Patch}\'),ExpandConstant('{app}\res_mods\backup\{#Patch}'));MoveDir(ExpandConstant('{app}\res_mods\xvm\'),ExpandConstant('{app}\res_mods\backup\xvm'));CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True);end;end;procedure CurStepChanged1(CurStep: TSetupStep);beginIf CurStep=ssInstall thenbeginBackupCheck_2();BackupCheck_3();end;end;procedure InitializeWizard1();beginBackupCheck_1();end; ////////////VarXVMTokenButton: TNewCheckBox; Procedure TokenCheckButton(Sender: TObject);beginif FileExists(ExpandConstant('{app}\tokens.xdb')) = false thenbeginXVMTokenButton.Caption:='Ñîõðàíèòü õâì-òîêåí (ïóíêò íåäîñòóïåí, ïîäðîáíîñòè íèæå).';XVMTokenButton.Enabled:=False;XVMTokenButton.Checked:=False;XVMTokenLabel.Caption:='Ïàïêà ñ òîêåíîì àêòèâàöèè ñòàòèñòèêè íå íàéäåíà.';XVMTokenLabel.Font.Color:=clGray;end;if FileExists(ExpandConstant('{app}\tokens.xdb')) = true thenbeginXVMTokenButton.Caption:='Ñîõðàíèòü õâì-òîêåí (òîêåí äîñòóïåí).';XVMTokenButton.Checked:=True;XVMTokenButton.Enabled:=True;XVMTokenLabel.Caption:='Ñîõðàíèòü ïàïêó ñ òîêåíîì àêòèâàöèè ñòàòèñòèêè.';XVMTokenLabel.Font.Color:=clBlack;end;end; Function Backup: Boolean;varBackupPage: TWizardPage;DeleteRadioButton, MoveRadioButton, NoneRadioButton: TNewRadioButton;BackupBox: TListBox;TokenCheck: TButton;BackupDescLabel, DeleteDescLabel, MoveDescLabel, NoneDescLabel, XVMTokenLabel: TLabel;begin/////////////òóò îñíîâíîé êîä áåêàïà\\\\\\\\\\\\\\\\XVMTokenButton:=TNewCheckBox.Create(WizardForm);XVMTokenButton.Parent:=BackupPage.Surface;XVMTokenButton.State:=cbUnchecked;XVMTokenButton.Top:=221;XVMTokenButton.Left:=4;XVMTokenButton.Width:=BackupPage.SurfaceWidth - 5;XVMTokenButton.Font.Style:=[fsBold];XVMTokenButton.Font.Size:=9;XVMTokenButton.Caption:='Ñîõðàíèòü õâì-òîêåí (ïðîâåðüòå åãî íàëè÷èå).';XVMTokenButton.Enabled:=False;XVMTokenLabel:=TLabel.Create(WizardForm);XVMTokenLabel.Parent:=BackupPage.Surface;XVMTokenLabel.Left:=18;XVMTokenLabel.Top:= XVMTokenButton.Top + XVMTokenButton.Height + 4;XVMTokenLabel.Width:=BackupPage.SurfaceWidth;XVMTokenLabel.Height:=40;XVMTokenLabel.AutoSize:=False;XVMTokenLabel.Wordwrap:=True;XVMTokenLabel.Caption:='Äëÿ ïðîâåðêè òîêåíà àêòèâàöèè ñòàñòèêè íàæìèòå êíîïêó íèæå.';XVMTokenLabel.Font.Color:=clGray; TokenCheck := TButton.Create(WizardForm);TokenCheck.Parent := BackupPage.Surface;TokenCheck.Top := 264;TokenCheck.Left := 143;TokenCheck.Width := 200;TokenCheck.Height := 23;TokenCheck.Caption := 'Ïðîâåðèòü íàëè÷èå òîêåíà';TokenCheck.Font.Size := 10;TokenCheck.Font.Style := [fsBold];TokenCheck.onClick := @TokenCheckButton;end; Function XVMTokenButton_1(): Boolean;beginIf XVMTokenButton.Checked thenbeginCreateDir(ExpandConstant('{app}\dbTEMP'));CopyDir(ExpandConstant('{app}\res_mods\xvm\db'),ExpandConstant('{app}\dbTEMP'));end;end;Function XVMTokenButton_2(): Boolean;beginIf XVMTokenButton.Checked thenbeginCreateDir(ExpandConstant('{app}\res_mods\xvm'));MoveDir(ExpandConstant('{app}\dbTEMP\db'),ExpandConstant('{app}\res_mods\xvm'));DelTree(ExpandConstant('{app}\dbTEMP'), True, True, True);end;end;procedure InitializeWizard2();beginBackup;end;Procedure CurStepChanged2(CurStep: TSetupStep);beginIf CurStep=ssInstall thenbeginXVMTokenButton_1();end;end;Procedure CurStepChanged3(CurStep: TSetupStep);beginIf CurStep=ssPostInstall thenbeginXVMTokenButton_2();end;end;Procedure CurStepChanged(CurStep: TSetupStep);beginCurStepChanged1(CurStep);CurStepChanged2(CurStep);CurStepChanged3(CurStep);end;А зачем вообще чекбоксы для токена городить, можно же по умолчанию постоянно его пересохранять да и всё. И нет проблем ни у тебя ни у пользователя :) Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #200521 Posted July 20, 2014 (edited) @Darksoul, уу, как всё запущено. Внимательнее смотри, ты создал две страницы бекапа на одном и том же месте. Это тот код, который я вам вчера бросал? Если да - то просто скинь свой код бекапа в ЛС - встрою на него эту кнопку. з.ы. ругается, что он неизвестный идентификатор потому, что его нужно объявить глобальной переменной, а у тебя он по-прежнему объявляется из одной процедуры, а вызывается из двух. Edited July 20, 2014 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
MEDNIKs 2 #200551 Posted July 20, 2014 Парни как замутить удаление старых модов?Очистку папки рес модс на странице выбора дериктории? да и ещё! почему чек бокс могу поставить поверх картинки ,а label не могу!? Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #200553 Posted July 20, 2014 (edited) Парни как замутить удаление старых модов?Очистку папки рес модс на странице выбора дериктории? Вот пример от @AtotIK`а. Можно сделать и на странице выбора дериктории, для этого удали часть кода, которая создаёт страницу. И для всех надписей, РадиоБаттонов смени названия страницы для свойства Parent, на SelectDirPage. да и ещё! почему чек бокс могу поставить поверх картинки ,а label не могу!? Покажи часть кода, где ты делаешь чекбокс на картинке, и код, в котором делаешь лейбл. Edited July 20, 2014 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
MEDNIKs 2 #200558 Posted July 20, 2014 Покажи часть кода, где ты делаешь чекбокс на картинке, и код, в котором делаешь лейбл. вот { RedesignWizardFormBegin } // Íå óäàëÿòü ýòó ñòðîêó!// Íå èçìåíÿòü ýòó ñåêöèþ. Îíà ñîçäàíà àâòîìàòè÷åñêè.varBitmapImage1: TBitmapImage;BitmapImage2: TBitmapImage;BitmapImage3: TBitmapImage;BitmapImage4: TBitmapImage;BitmapImage5: TBitmapImage;BitmapImage7: TBitmapImage;BitmapImage8: TBitmapImage;BitmapImage9: TBitmapImage;BitmapImage10: TBitmapImage;BitmapImage6: TBitmapImage;Label1: TLabel;NewCheckBox1: TNewCheckBox;procedure RedesignWizardForm;beginwith WizardForm.SelectDirPage do{ Label2 }Label2 := TLabel.Create(WizardForm);with Label2 dobeginName := 'Label2';Parent := WizardForm.SelectDirPage;Caption := 'Óäàëèòü âñå ñòàðûå ìîäû (Ðåêîìåíäóåòñÿ!)';Transparent := True;Left := ScaleX(380);Top := ScaleY(220);Width := ScaleX(180);Height := ScaleY(13);end;{ NewCheckBox1 }NewCheckBox1 := TNewCheckBox.Create(WizardForm);with NewCheckBox1 dobeginName := 'NewCheckBox1';Parent := WizardForm.SelectDirPage;Left := ScaleX(370);Top := ScaleY(220);Width := ScaleX(13);Height := ScaleY(13);Caption := '';end; Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #200560 Posted July 20, 2014 @MEDNIKs, попробуй лейблу в родители записать: Parent := WizardForm.SelectDirPage.BitmapImage5 или не 5.. какое надо, такое и записывай. Хотя, не уверен, что сработает. Quote Share this post Link to post Short link Share on other sites
MEDNIKs 2 #200561 Posted July 20, 2014 попробуй лейблу в родители записать: Parent := WizardForm.SelectDirPage.BitmapImage5 или не 5.. какое надо, такое и записывай. Хотя, не уверен, что сработает. не работает :( Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #200563 Posted July 20, 2014 (edited) не работает :( Значит, ты лейбл создаёшь перед картинкой, и она его перекрывает. А чекбокс создаёшь после картинки, из-за чего чекбокс нормально виден. Создай лейбл (по очерёдности) после того, как ты прописал картинки. Ну или просто после чекбокса. Edited July 20, 2014 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
Andrew_Dark 8 #200637 Posted July 21, 2014 (edited) Уже в тот день день всё решил, но немного попроще, но всё равно спасибо. Edited July 21, 2014 by Darksoul Quote Share this post Link to post Short link Share on other sites
MEDNIKs 2 #200652 Posted July 21, 2014 Значит, ты лейбл создаёшь перед картинкой, и она его перекрывает. А чекбокс создаёшь после картинки, из-за чего чекбокс нормально виден. Создай лейбл (по очерёдности) после того, как ты прописал картинки. Ну или просто после чекбокса. О заработало!Спасибо ! Quote Share this post Link to post Short link Share on other sites
klasdenis 2 #200717 Posted July 21, 2014 (edited) Я все в Скриптах закончил тепер как Зделать Сам файл exe инсталятора? Edited July 21, 2014 by klasdenis Quote Share this post Link to post Short link Share on other sites