|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
Ветеран Сообщения: 1269 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z |
|
Отправлено: 16:09, 04-04-2018 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать ZVSRus, да с картинкой PNG вы мне помогли. Работает как надо. Как бы вопрос закрыт. Спасибо!
Но тут речь, как ICO вместо BMP заменить, чтобы избавиться от головной боли с этой прозрачностью-непрозрачностью картинок BMP. Вот и наткнулся на эти два варианта из справки. |
Отправлено: 21:03, 17-11-2022 | #911 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать ZVSRus, в общем проехали с этой иконкой. Не буду и не надо заморачиваться.
Извиняюсь за отнятое у Вас время. |
Последний раз редактировалось DA-Bro, 18-11-2022 в 00:03. Отправлено: 21:25, 17-11-2022 | #912 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Подскажите пожалуйста! А как вот это сделать.
В обычном мастере показывает только сколько требуется на диске. |
Отправлено: 04:29, 18-11-2022 | #913 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата DA-Bro:
вот так не подойдет? Пример
[Setup] AppName=My Program AppVerName=My Program v 1.5 DefaultDirName={pf}\My Program DisableFinishedPage=yes OutputDir=. Compression=lzma/ultra InternalCompressLevel=ultra SolidCompression=yes [Languages] Name: ENG; MessagesFile: "compiler:Default.isl" Name: RUS; MessagesFile: "compiler:Languages\Russian.isl" [Files] Source: {win}\help\mui\0419\*.chm; DestDir: {app}\Files; Flags: external [CustomMessages] RUS.FreeSpace=Доступно места на диске: RUS.NeedSpace=Требуется места на диске: ENG.FreeSpace=Free space on disk: ENG.NeedSpace=Need space on disk: [_Code] var NeedSpaceLabel,FreeSpaceLabel: TLabel; FreeMB, TotalMB: Cardinal; SizeStr: String; SizeInt: Integer; SymbolNumber: Integer; function NumToStr(Float: Extended): String; begin Result:= Format('%.2n', [Float]); StringChange(Result, ',', '.'); while ( Pos('.', Result) > 0 ) and ( (Result[Length(Result)] = '0') or (Result[Length(Result)] = '.') ) do SetLength(Result, Length(Result) - 1); end; function GetSize(): Integer; begin SizeStr:= WizardForm.DiskSpaceLabel.Caption; for SymbolNumber:= 97 to 122 do begin while (Pos(Chr(SymbolNumber), SizeStr) > 0) do Delete(SizeStr, Pos(Chr(SymbolNumber), SizeStr),1); ///Находим все символы нижнего регистра и удаляем while (Pos(AnsiUppercase(Chr(SymbolNumber)), SizeStr) > 0) do Delete(SizeStr, Pos(AnsiUppercase(Chr(SymbolNumber)), SizeStr),1); end; ///Находим все символы верхнего регистра и удаляем for SymbolNumber:= 192 to 255 do begin while (Pos(Chr(SymbolNumber), SizeStr) > 0) do Delete(SizeStr, Pos(Chr(SymbolNumber), SizeStr),1); ///Находим все символы нижнего регистра и удаляем while (Pos('.', SizeStr) > 0) do Delete(SizeStr, Pos('.', SizeStr), 1); end; ///Удаляем точки Delete(SizeStr, Pos(',', SizeStr), 5) ///Удаляем дробную часть Result:= StrToInt(Trim(SizeStr)); ///Переводим в число end; function CompareNum(FirstNum, SecondNum: Integer): Boolean; begin if FirstNum < SecondNum then Result:= False else Result:= True; end; function MbOrTb(Byte: Extended): String; begin if Byte < 1024 then Result:= NumToStr(Byte) + ' Мб' else if Byte/1024 < 1024 then Result:= NumToStr(Byte/1024) + ' Гб' else Result:= NumToStr(Byte/(1024*1024)) + ' Тб' end; procedure GetFreeSpaceCaption(Sender: TObject); var Path: String; begin Path := ExtractFileDrive(WizardForm.DirEdit.Text); GetSpaceOnDisk(Path, True, FreeMB, TotalMB); FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace} ') + MbOrTb(FreeMB) NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace} ') + MbOrTb(SizeInt) if WizardForm.CurPageID = wpSelectDir then begin WizardForm.NextButton.Enabled:= CompareNum(FreeMB, SizeInt) end; end; procedure InitializeWizard(); begin WizardForm.DiskSpaceLabel.Hide; #ifdef NeedSize SizeInt:= {#NeedSize} #else SizeInt:= GetSize; #endif NeedSpaceLabel := TLabel.Create(WizardForm); NeedSpaceLabel.SetBounds(ScaleX(0), ScaleY(198), ScaleX(209), ScaleY(13)) NeedSpaceLabel.Parent := WizardForm.SelectDirPage; NeedSpaceLabel.Transparent:=true; FreeSpaceLabel := TLabel.Create(WizardForm); FreeSpaceLabel.SetBounds(ScaleX(0), ScaleY(216), ScaleX(209), ScaleY(13)) FreeSpaceLabel.Parent := WizardForm.SelectDirPage; FreeSpaceLabel.Transparent:=true; WizardForm.DirEdit.OnChange:= @GetFreeSpaceCaption; WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0; end; procedure CurPageChanged(CurPageID: Integer); begin if CurPageID = wpSelectDir then begin GetFreeSpaceCaption(nil) end; end; |
|
------- Последний раз редактировалось Vanadiy777, 18-11-2022 в 19:08. Отправлено: 15:48, 18-11-2022 | #914 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Vanadiy777, Выдает вот такое окошко.
|
Отправлено: 19:53, 18-11-2022 | #915 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата DA-Bro:
попробуйте сначала только пример скомпилировать. Версия Inno Setup какая? Я на 5.6.1 проверял. |
|
------- Отправлено: 20:00, 18-11-2022 | #916 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Vanadiy777, да, я так сейчас один его и попробую.
В архиве темы увидел пост про другую ошибку. Там пишут переменные нужно объявить глобально. Только как. У меня наверно нестыковка с другим кодом. Похоже надо что-то объединить. Сам не знаю. |
Последний раз редактировалось DA-Bro, 25-11-2022 в 01:36. Отправлено: 20:11, 18-11-2022 | #917 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата DA-Bro:
если пример отдельно нормально компилируется и работает, то у Вас, видимо, что-то в коде пересекается... Отсюда же не видно... |
|
------- Отправлено: 20:26, 18-11-2022 | #918 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Vanadiy777, Вы мне дали пример похоже один в один то что я попросил как на картинке.
Он работает. То что нужно. Спасибо большое! Думаю у меня нестыковка с кодом который давали выше с кнопками. Сейчас попробую подставить к вашему примеру коды по частям и посмотрю когда вылетит ошибка. |
Последний раз редактировалось DA-Bro, 18-11-2022 в 21:57. Отправлено: 20:28, 18-11-2022 | #919 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Vanadiy777 Ваш пример "Место на диске" и скрипт от nik1967 тоже рабочий.
Но вот когда их объединяешь лезут ошибки. Не знаю как эту нестыковку поправить. Как их вот "подружить" друг с другом. Вот эта ошибка выскочила: |
Последний раз редактировалось DA-Bro, 25-11-2022 в 01:36. Отправлено: 21:56, 18-11-2022 | #920 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 |
|