|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме 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 |
|
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать ZVSRus, да с картинкой PNG вы мне помогли. Работает как надо. Как бы вопрос закрыт. Спасибо!
Но тут речь, как ICO вместо BMP заменить, чтобы избавиться от головной боли с этой прозрачностью-непрозрачностью картинок BMP. Вот и наткнулся на эти два варианта из справки. |
|
Отправлено: 21:03, 17-11-2022 | #911 |
|
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать ZVSRus, в общем проехали с этой иконкой. Не буду и не надо заморачиваться.
Извиняюсь за отнятое у Вас время. |
|
Последний раз редактировалось DA-Bro, 18-11-2022 в 00:03. Отправлено: 21:25, 17-11-2022 | #912 |
|
Пользователь Сообщения: 99
|
Профиль | Отправить 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 |
|
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Vanadiy777, Выдает вот такое окошко.
![]() |
|
Отправлено: 19:53, 18-11-2022 | #915 |
|
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата DA-Bro:
попробуйте сначала только пример скомпилировать. Версия Inno Setup какая? Я на 5.6.1 проверял. |
|
|
------- Отправлено: 20:00, 18-11-2022 | #916 |
|
Пользователь Сообщения: 99
|
Профиль | Отправить 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 |
|
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Vanadiy777, Вы мне дали пример похоже один в один то что я попросил как на картинке.
Он работает. То что нужно. Спасибо большое! Думаю у меня нестыковка с кодом который давали выше с кнопками. Сейчас попробую подставить к вашему примеру коды по частям и посмотрю когда вылетит ошибка. |
|
Последний раз редактировалось DA-Bro, 18-11-2022 в 21:57. Отправлено: 20:28, 18-11-2022 | #919 |
|
Пользователь Сообщения: 99
|
Профиль | Отправить 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 | |
|