sergy2010 24 #405838 Posted October 2, 2017 (edited) 3 часа назад, P.S.Enot сказал: еще нужен пример такого варианта скрипта это скорей всего не скрипт а скин или VcL стиль ааа нет это скрипт и куча картинок пнг Edited October 2, 2017 by sergy2010 1 1 Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #405936 Posted October 2, 2017 В 27.09.2017 в 23:57, ЛОМ сказал: это ведь твоя работа? У меня лучше сделано. Quote Share this post Link to post Short link Share on other sites
sergy2010 24 #406222 Posted October 5, 2017 (edited) кто нибудь подскажите как эти кнопки называются в Messages Edited October 5, 2017 by sergy2010 1 1 Quote Share this post Link to post Short link Share on other sites
Andrew_Dark 8 #406508 Posted October 8, 2017 (edited) а В 05.10.2017 в 20:50, sergy2010 сказал: кто нибудь подскажите как эти кнопки называются в Messages В редакторе форм не смотрел? Там есть эти кнопки, но дружище Експ скинул сразу все ниже... Edited October 8, 2017 by Darksoul 1 Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #406509 Posted October 8, 2017 (edited) В 2017-10-5 в 20:50, sergy2010 сказал: кто нибудь подскажите как эти кнопки называются в Messages Никак, это SHBrowseForFolder https://msdn.microsoft.com/en-us/library/windows/desktop/bb762115(v=vs.85).aspx смотри пост ниже Edited October 8, 2017 by Mixaill Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #406513 Posted October 8, 2017 В 05.10.2017 в 20:50, sergy2010 сказал: кто нибудь подскажите как эти кнопки называются в Messages ; *** Buttons ButtonBack=< &Назад ButtonNext=&Далее > ButtonInstall=&Установить ButtonOK=OK ButtonCancel=Отмена ButtonYes=&Да ButtonYesToAll=Да для &Всех ButtonNo=&Нет ButtonNoToAll=Н&ет для Всех ButtonFinish=&Завершить ButtonBrowse=&Обзор... ButtonWizardBrowse=&Обзор... ButtonNewFolder=&Создать папку 40 минут назад, Darksoul сказал: а в редакторе форм не смотрел? редактор тут не причем 1 Quote Share this post Link to post Short link Share on other sites
sergy2010 24 #406520 Posted October 8, 2017 1 час назад, Ekspoint сказал: ; *** Buttons ButtonBack=< &Назад ButtonNext=&Далее > ButtonInstall=&Установить ButtonOK=OK ButtonCancel=Отмена ButtonYes=&Да ButtonYesToAll=Да для &Всех ButtonNo=&Нет ButtonNoToAll=Н&ет для Всех ButtonFinish=&Завершить ButtonBrowse=&Обзор... ButtonWizardBrowse=&Обзор... ButtonNewFolder=&Создать папку редактор тут не причем спасибо 1 2 Quote Share this post Link to post Short link Share on other sites
Andrew_Dark 8 #409431 Posted October 28, 2017 Есть код, который отвечает за вывод в файл лога установленных модов. function CreateLogMods: Boolean; var I: Integer; FileName, DateTime: String; begin Result:=True; DateTime:=GetDateTimeString('dd/mm/yyyy hh:nn', '-', '-'); FileName:=ExpandConstant('{app}\{#MyAppName}\Лог установки модов от ' + DateTime + '.log'); SaveStringToFile(FileName, '"{#MyAppName} {#Patch} - {#MyAppVer}"' + #13#10 + #13#10 + 'Дата установки - ' + DateTime + #13#10 + #13#10 + 'Выбранные вами моды:' + #13#10, True); For I:=0 to WizardForm.ComponentsList.Items.Count - 1 do If WizardForm.ComponentsList.Checked[I] then begin SaveStringToFile(FileName, '... ' + WizardForm.ComponentsList.ItemCaption[I] + #13#10, True); end; SaveStringToFile(Filename, + #13#10 + 'Дополнительные задачи:' + #13#10, true); for i:= 0 to WizardForm.TasksList.Items.Count - 1 do begin if WizardForm.TasksList.Checked[i] then SaveStringToFile(Filename, '... '+WizardForm.TasksList.ItemCaption[i] + #13#10, true); end; end; //""""""""""""""""""""""""""""""""""""""""""""""// procedure CreateLogModsChanged(CurStep: TSetupStep); begin If CurStep=ssInstall then begin CreateDir(ExpandConstant('{app}\{#MyAppName}')); CreateLogMods; end; end; [/spoiler] Как сделать так, чтобы он цеплял инфу из нескольких страниц с модификациями? 2 1 Quote Share this post Link to post Short link Share on other sites
Lom 48 #409432 Posted October 28, 2017 (edited) 14 минуты назад, Darksoul сказал: Есть код, который отвечает за вывод в файл лога установленных модов. Показать содержимое function CreateLogMods: Boolean; var I: Integer; FileName, DateTime: String; begin Result:=True; DateTime:=GetDateTimeString('dd/mm/yyyy hh:nn', '-', '-'); FileName:=ExpandConstant('{app}\{#MyAppName}\Лог установки модов от ' + DateTime + '.log'); SaveStringToFile(FileName, '"{#MyAppName} {#Patch} - {#MyAppVer}"' + #13#10 + #13#10 + 'Дата установки - ' + DateTime + #13#10 + #13#10 + 'Выбранные вами моды:' + #13#10, True); For I:=0 to WizardForm.ComponentsList.Items.Count - 1 do If WizardForm.ComponentsList.Checked[I] then begin SaveStringToFile(FileName, '... ' + WizardForm.ComponentsList.ItemCaption[I] + #13#10, True); end; SaveStringToFile(Filename, + #13#10 + 'Дополнительные задачи:' + #13#10, true); for i:= 0 to WizardForm.TasksList.Items.Count - 1 do begin if WizardForm.TasksList.Checked[i] then SaveStringToFile(Filename, '... '+WizardForm.TasksList.ItemCaption[i] + #13#10, true); end; end; //""""""""""""""""""""""""""""""""""""""""""""""// procedure CreateLogModsChanged(CurStep: TSetupStep); begin If CurStep=ssInstall then begin CreateDir(ExpandConstant('{app}\{#MyAppName}')); CreateLogMods; end; end; [/spoiler] Как сделать так, чтобы он цеплял инфу из нескольких страниц с модификациями? у меня вот так... И со второй страницы цепляет и с Tasks тоже. function CreateLogMods: Boolean; var I: Integer; FileName, DateTime: String; begin Result:=True; DateTime:=GetDateTimeString('dd/mm/yyyy hh:nn', '-', '-'); ForceDirectories(ExpandConstant('{app}\ХХХ-удалить')); FileName:=ExpandConstant('{app}\ХХХ-удалить\install.log'); SaveStringToFile(FileName, + #13#10 + #13#10 + '{#MyAppName} version {#MyAppVersion}' + #13#10 + #13#10 + 'Дата установки: ' + DateTime + #13#10 + #13#10 + 'Путь установки: ' + WizardForm.DirEdit.Text + #13#10 + #13#10 + 'Выбранные вами моды:' + #13#10, True); For I:=0 to WizardForm.ComponentsList.Items.Count - 1 do If WizardForm.ComponentsList.Checked[I] then begin SaveStringToFile(FileName, '1... ' + WizardForm.ComponentsList.ItemCaption[I] + #13#10, True); end; For I:=0 to ComponentsList2.Items.Count - 1 do If ComponentsList2.Checked[I] then begin SaveStringToFile(FileName, '2... ' + ComponentsList2.ItemCaption[I] + #13#10, True); end; For I:=0 to WizardForm.TasksList.Items.Count - 1 do If WizardForm.TasksList.Checked[I] then begin SaveStringToFile(FileName, '3... ' + WizardForm.TasksList.ItemCaption[I] + #13#10, True); end; end; Edited October 28, 2017 by ЛОМ 1 Quote Share this post Link to post Short link Share on other sites
Andrew_Dark 8 #409433 Posted October 28, 2017 (edited) 10 часов назад, ЛОМ сказал: у меня вот так... function CreateLogMods: Boolean; var I: Integer; FileName, DateTime: String; begin Result:=True; DateTime:=GetDateTimeString('dd/mm/yyyy hh:nn', '-', '-'); ForceDirectories(ExpandConstant('{app}\ХХХ-удалить')); FileName:=ExpandConstant('{app}\ХХХ-удалить\install.log'); SaveStringToFile(FileName, + #13#10 + #13#10 + '{#MyAppName} version {#MyAppVersion}' + #13#10 + #13#10 + 'Дата установки: ' + DateTime + #13#10 + #13#10 + 'Путь установки: ' + WizardForm.DirEdit.Text + #13#10 + #13#10 + 'Выбранные вами моды:' + #13#10, True); For I:=0 to WizardForm.ComponentsList.Items.Count - 1 do If WizardForm.ComponentsList.Checked[I] then begin SaveStringToFile(FileName, '1... ' + WizardForm.ComponentsList.ItemCaption[I] + #13#10, True); end; For I:=0 to ComponentsList2.Items.Count - 1 do If ComponentsList2.Checked[I] then begin SaveStringToFile(FileName, '2... ' + ComponentsList2.ItemCaption[I] + #13#10, True); end; For I:=0 to WizardForm.TasksList.Items.Count - 1 do If WizardForm.TasksList.Checked[I] then begin SaveStringToFile(FileName, '3... ' + WizardForm.TasksList.ItemCaption[I] + #13#10, True); end; end; Спс, попробую, ибо это один из последних штрихов, что остались для допила. С меня + в репу. Ап. Попробовал, не подошло, у меня немного по другому сами страницы запилены, и этот вариант поэтому не проходит, буду думать, чё можно сделать, но за попытку помочь спасибо. Edited October 29, 2017 by Darksoul 2 2 Quote Share this post Link to post Short link Share on other sites
enisgecgen 0 #410719 Posted November 6, 2017 Привет, я пишу, используя программу перевода, Я создал пакет, используя программу здесь Но все файлы в пакете также помещаются в основную папку игры как я могу решить эту проблему? Quote Share this post Link to post Short link Share on other sites
Lom 48 #410725 Posted November 6, 2017 35 минут назад, enisgecgen сказал: Привет, я пишу, используя программу перевода, Я создал пакет, используя программу здесь Но все файлы в пакете также помещаются в основную папку игры как я могу решить эту проблему? у тебя так же написано? Quote Share this post Link to post Short link Share on other sites
sergy2010 24 #410773 Posted November 7, 2017 (edited) [Code] type TComponentDesc = record Description: String; ImageName: String; Index: Integer; end; var Panel : TPanel; BitmapImage42: TBitmapImage; BitmapImage44: TBitmapImage; ComponentsPage: TWizardPage; ComponentsList: TNewCheckListBox; SelectComponentsLabel: TNewStaticText; CompDescs: array of TComponentDesc; CompDescPanel, CompDescImgPanel: TPanel; CompIndex, LastIndex: Integer; DescImg: TBitmapImage; procedure ShowCompDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea); var i: Integer; begin if Index = LastIndex then Exit; CompIndex0 := -1; for i := 0 to GetArrayLength(CompDescs) -1 do begin if (CompDescs[i].Index = Index) then begin CompIndex := i; Break; end; end; if (CompIndex >= 0) and (Area = iaItem) then begin if not FileExists(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName) then ExtractTemporaryFile(CompDescs[CompIndex].ImageName); DescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName); DescImg.Show; end else begin DescImg.Hide; end; LastIndex := Index; end; procedure CompListMouseLeave(Sender: TObject); begin DescImg.Hide; LastIndex := -1; end; procedure AddCompDescription(AIndex: Integer; ADescription: String; AImageName: String); var i: Integer; begin i := GetArrayLength(CompDescs0); SetArrayLength(CompDescs, i + 1); CompDescs[i].Description := ADescription; CompDescs[i].ImageName := AImageName; CompDescs[i].Index := AIndex - 1 end; procedure RedesignWizardForm0; begin ComponentsPage0 := CreateCustomPage(wpSelectDir, SetupMessage(msgWizardSelectComponents), SetupMessage(msgSelectComponentsDesc)); SelectComponentsLabel0 := TNewStaticText.Create(WizardForm); with SelectComponentsLabel0 do begin Caption := ' ПРИЦЕЛЫ'; Font.Height := -21; Font.Color := clRed; Font.Name := 'Times New Roman'; Font.Style := [fsBold]; Parent := ComponentsPage.Surface; end; Panel := TPanel.Create(WizardForm); with Panel do begin Parent := ComponentsPage0.Surface; Left := ScaleX(0); Top := ScaleY(321); Width := ScaleX(790); Height := ScaleY(23); end; BitmapImage := TBitmapImage.Create(WizardForm); with BitmapImage do begin Name := 'BitmapImage'; Parent := ComponentsPage0.Surface; Left := ScaleX(0); Top := ScaleY(0); Width := ScaleX(790); Height := ScaleY(314); Stretch := True; ExtractTemporaryFile('WizardForm.BitmapImage.bmp'); Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage.bmp')); end; BitmapImage44 := TBitmapImage.Create(WizardForm); with BitmapImage44 do begin Name := 'BitmapImage44'; Parent := ComponentsPage0.Surface; Left := ScaleX(43); Top := ScaleY(321); Width := ScaleX(700); Height := ScaleY(23); ExtractTemporaryFile('WizardForm.BitmapImage.bmp'); Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage.bmp')); end; ComponentsList := TNewCheckListBox.Create(WizardForm); with ComponentsList do begin Color := clBlack; Font.Color := clWhite; Font.Height := -12; Parent := ComponentsPage.Surface; SetBounds(ScaleX(0), ScaleY(31), ScaleX(440), ScaleY(280)); OnItemMouseMove := @ShowCompDescription; AddCheckBox('родлжлопаролд', '', 0, False, True, False, True, nil); //0 AddCheckBox('паролдорпааапрлоджло', '', 1, False, True, False, True, nil);//3 end; CompDescImgPanel := TPanel.Create(WizardForm); with CompDescImgPanel do begin Parent := ComponentsPage.Surface; SetBounds(ScaleX(450), ScaleY(31), ScaleX(340), ScaleY(280)); //=========размер рамки картинки BevelInner := bvLowered; end; DescImg := TBitmapImage.Create(WizardForm); with DescImg do begin Parent := CompDescImgPanel; SetBounds(ScaleX(0), ScaleY(0), CompDescImgPanel0.Width - ScaleX(0), CompDescImgPanel0.Height - ScaleY(0));//=========размер картинки Stretch := True; ExtractTemporaryFile('WizardForm.BitmapImage14.bmp'); Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage.bmp')); end; AddCompDescription0(1, ('CompDesc0'), 'DescImg0.bmp'); AddCompDescription0(2, ('CompDesc0'), 'DescImg01.bmp'); end; function IsComponent(CompIndex: Integer): Boolean; var i: Integer; begin Result := False; for i := 0 to ComponentsList.ItemCount - 1 do begin if CompIndex <= (ComponentsList.ItemCount - 1) then Result := ComponentsList.Checked[CompIndex]; end; end; Подскажите как к такому дополнительному компонент листу сделать запоминание выбранных компонентов Edited November 7, 2017 by sergy2010 2 Quote Share this post Link to post Short link Share on other sites
enisgecgen 0 #410791 Posted November 7, 2017 Hello, i uploaded 1 picture. How can i change on mod pack " ?????? " And Button words " ????? " And this modpack have updater file and download from 1 server. how can i change this server ? Who can help me ? Только что, enisgecgen сказал: Hello, i uploaded 1 picture. How can i change on mod pack " ?????? " And Button words " ????? " And this modpack have updater file and download from 1 server. how can i change this server ? Who can help me ? @Kotyarko_O Quote Share this post Link to post Short link Share on other sites
Lom 48 #410804 Posted November 7, 2017 (edited) 2 часа назад, enisgecgen сказал: How can i change on mod pack " ?????? " #define MyAppName "xxxxxx v. 0.1" And this modpack have updater file and download from 1 server. how can i change this server ? Edited November 7, 2017 by ЛОМ Quote Share this post Link to post Short link Share on other sites
enisgecgen 0 #410805 Posted November 7, 2017 11 минуту назад, ЛОМ сказал: #define MyAppName "xxxxxx v. 0.1" Ve bu modpack bir güncelleyici var ve 1 sunucudan indirmek. Bu sunucuyu nasıl değiştirebilirim? Havent this file in Kotyarko_O mods pack. Quote Share this post Link to post Short link Share on other sites
Lom 48 #410807 Posted November 7, 2017 короче моя твоя не понимать более... Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #410819 Posted November 7, 2017 1 час назад, ЛОМ сказал: короче моя твоя не понимать более... красава))) Quote Share this post Link to post Short link Share on other sites
enisgecgen 0 #410917 Posted November 8, 2017 привет, в конечном итоге помогли организовать программу :D Но это все равно будет ответственностью. Как стереть предыдущие папки при установке и то я хочу установить выбранные папки в настройке. может ли быть помощь? Я загрузил приложение здесь и имя : XXX Quote Share this post Link to post Short link Share on other sites
Lom 48 #410921 Posted November 8, 2017 14 минуты назад, enisgecgen сказал: Как стереть предыдущие папки при установке и то я хочу установить выбранные папки в настройке. лучше бы на английском написал )))) так вообще ничего не понятно ))) вот это тебе нужно? #define Patch "0.9.20.1.2" #include "SHFileOperation.iss" [Code] var DeleteRadioButton, MoveRadioButton, NoneRadioButton: TRadioButton; DeleteCashAndLogsCheckBox, DeleteUpdatesCheckBox: TCheckBox; const DeleteDescText = 'Установщик удалит все файлы в папках.'; MoveDescText = 'Установщик сделает резервную копию файлов.'; NoneDescText = 'Установщик не будет ничего трогать.'; function BackupCheck_1(): Boolean; var DeleteDescLabel, MoveDescLabel, NoneDescLabel: TLabel; begin DeleteRadioButton:=TRadioButton.Create(WizardForm); DeleteRadioButton.SetBounds(0, 120, WizardForm.RunList.Width, 20) DeleteRadioButton.Checked:=True; DeleteRadioButton.Caption:='Удалить моды'; DeleteRadioButton.Parent:=WizardForm.SelectDirPage; DeleteDescLabel:=TLabel.Create(WizardForm); DeleteDescLabel.Parent:=WizardForm.SelectDirPage; DeleteDescLabel.Left:=0; DeleteDescLabel.Top:=DeleteRadioButton.Top + DeleteRadioButton.Height; DeleteDescLabel.Width:=WizardForm.SelectDirPage; DeleteDescLabel.Height:=20; DeleteDescLabel.AutoSize:=False; DeleteDescLabel.Wordwrap:=True; DeleteDescLabel.Caption:=DeleteDescText; MoveRadioButton:=TRadioButton.Create(WizardForm); MoveRadioButton.SetBounds(0, 160, WizardForm.RunList.Width, 20) MoveRadioButton.Checked:=False; MoveRadioButton.Caption:='Сделать резервную копию модов'; MoveRadioButton.Parent:=WizardForm.SelectDirPage; MoveDescLabel:=TLabel.Create(WizardForm); MoveDescLabel.Parent:=WizardForm.SelectDirPage; MoveDescLabel.Left:=0; MoveDescLabel.Top:=MoveRadioButton.Top + MoveRadioButton.Height; MoveDescLabel.Width:=WizardForm.SelectDirPage; MoveDescLabel.Height:=20; MoveDescLabel.AutoSize:=False; MoveDescLabel.Wordwrap:=True; MoveDescLabel.Caption:=MoveDescText; NoneRadioButton:=TRadioButton.Create(WizardForm); NoneRadioButton.SetBounds(0, 200, WizardForm.RunList.Width, 20) NoneRadioButton.Checked:=False; NoneRadioButton.Caption:='Ничего не трогать'; NoneRadioButton.Parent:=WizardForm.SelectDirPage; NoneDescLabel:=TLabel.Create(WizardForm); NoneDescLabel.Parent:=WizardForm.SelectDirPage; NoneDescLabel.Left:=0; NoneDescLabel.Top:=NoneRadioButton.Top + NoneRadioButton.Height; NoneDescLabel.Width:=WizardForm.SelectDirPage; NoneDescLabel.Height:=20; NoneDescLabel.AutoSize:=False; NoneDescLabel.Wordwrap:=True; NoneDescLabel.Caption:=NoneDescText; DeleteCashAndLogsCheckBox:=TCheckBox.Create(WizardForm); DeleteCashAndLogsCheckBox.SetBounds(0, 240, WizardForm.RunList.Width, 20) DeleteCashAndLogsCheckBox.Checked:=True; DeleteCashAndLogsCheckBox.Caption:='Очистить кэш и логи'; DeleteCashAndLogsCheckBox.Parent:=WizardForm.SelectDirPage; DeleteUpdatesCheckBox:=TCheckBox.Create(WizardForm); DeleteUpdatesCheckBox.SetBounds(150, 240, WizardForm.RunList.Width, 20) DeleteUpdatesCheckBox.Checked:=True; DeleteUpdatesCheckBox.Caption:='Очистить папку Updates, освободив место на диске'; DeleteUpdatesCheckBox.Parent:=WizardForm.SelectDirPage; end; function BackupCheck_2(): Boolean; begin If DeleteRadioButton.Checked then begin DelTree(ExpandConstant('{app}\res_mods'), True, True, True); CreateDir(ExpandConstant('{app}\res_mods\{#Patch}')); DelTree(ExpandConstant('{app}\mods'), True, True, True); CreateDir(ExpandConstant('{app}\mods\{#Patch}')); end; end; function BackupCheck_3(): Boolean; begin If MoveRadioButton.Checked then begin MoveDir(ExpandConstant('{app}\res_mods\'),ExpandConstant('{app}\res_mods\backup\res_mods')); CreateDir(ExpandConstant('{app}\res_mods\{#Patch}')); MoveDir(ExpandConstant('{app}\mods\'),ExpandConstant('{app}\mods\backup\mods')); CreateDir(ExpandConstant('{app}\mods\{#Patch}')); end; end; function BackupCheck_4(): Boolean; begin If DeleteCashAndLogsCheckBox.Checked then begin DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\account_caches\'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\awesomium_cache\'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\battle_results\'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\clan_cache\'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\custom_data\'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\dossier_cache\'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\messenger_cache\'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\tutorial_cache\'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\xvm'), True, True, True); end; end; function BackupCheck_5(): Boolean; begin If DeleteUpdatesCheckBox.Checked then begin DelTree(ExpandConstant('{app}\Updates'), True, True, True); CreateDir(ExpandConstant('{app}\Updates')); end; end; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep = ssInstall then begin BackupCheck_2(); BackupCheck_3(); BackupCheck_4(); BackupCheck_5(); end; end; procedure InitializeWizard1(); begin BackupCheck_1(); end; procedure InitializeWizard2(); begin InitInfo(); end; procedure InitializeWizard(); begin InitializeWizard1(); InitializeWizard2(); end; Quote Share this post Link to post Short link Share on other sites