Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 [115] 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

No4noylis
12-07-2011, 22:02
Я вообще не пойму!!!!!!!!!!!!!!!!!!!!!!! Делаю инсталлятор, делаю отображение необходимого и доступного места на винте, так вот: скрипт компилируеться все хорошо, запускаеться инсталлятор, перехожу на SelectDir, там отображаеться только доступное место на винте, я нажимаю кнопочку назад, перехожу на Welcome, потом снова далее и перехожу на SelectDir и теперь отображаеться все как положено и доступное и необходимое место на винте :o !!!! Кто знает в чем дело???

Rikill
12-07-2011, 22:08
No4noylis, а если свернуть-развернуть страничку selectdir тоже всё возвращается?

No4noylis
12-07-2011, 22:11
Rikill, Да! Ну так можно что-то сделать???

Edison007
12-07-2011, 22:58
No4noylis
Скрипт в "студию", экстрасенсы в отпуске...

leshcat
13-07-2011, 10:31
Неужели нету (http://forum.oszone.net/post-1711596-2318.html) никаких решений?

Gnom_aka_Lexander
13-07-2011, 11:18
leshcat, Поставь рид-онли на ричэдит, и тогда текст нельзя будет редактировать.
{ RichEditViewer1 }
RichEditViewer1 := TRichEditViewer.Create(WizardForm);
with RichEditViewer1 do
begin
Name := 'RichEditViewer1';
Parent := ISCustomPage1.Surface;
Left := ScaleX(0);
Top := ScaleY(0);
Width := ScaleX(417);
Height := ScaleY(233);
ReadOnly := True;
RTFText :=S;
end;
2. Есть ли расширенная версия, где можно подключать что-нибудь посовершеннее, типа doc с 2003 офиса/ docx 2007? »
И как ты себе это представляеш? эти форматы работают под платным программным монстром Микрософт Офис, Инно - продукт бесплатный, а рич-текст - используется, я так понимаю, функции встроенные в систему.

No4noylis, Скрипт покажи, чего хоть непонятного?

No4noylis
13-07-2011, 11:38
Лександер, Он у меня слишком большой, больше 30 000 символов и не отправляеться!!!! Может можно просто добавить в процедуру CurPageChanged какую нибудь команду, чтоб если CurPageID=wpSelectDir то страница обновлялась???

Gnom_aka_Lexander
13-07-2011, 11:41
Может можно просто добавить в процедуру CurPageChanged какую нибудь команду, чтоб если CurPageID=wpSelectDir то страница обновлялась??? »
Именно это и нужно сделать. но я не знаю, как называется у тебя процедура, которая пересчитывает свободное место на диске, поэтому и нужен скрипт.Он у меня слишком большой »Дык, залей на обменник :)

No4noylis
13-07-2011, 11:49
Лександер, держи http://rghost.ru/14381671

Gnom_aka_Lexander
13-07-2011, 12:23
Лександер, держи http://rghost.ru/14381671 »
В твоем случае я бессилен. Нет, я нашел, конечно, что нужно добавить, но у тебя две процедуры GetNeedSpaceCaption, которые нельзя объединять. и они тупо конфликтуют между собой. А вообще, кто тебя учил ТАК писать скртпы? Очень похоже на ранние работы уважаемого товарища Rikill. Вообще непонятно, как можно настолько испоганить такой хороший скрипт?

Edison007
13-07-2011, 12:32
No4noylis
Что за издевательство!?
Вообще все запущено :(
Можно сделать так:
вместо процедур: GetFreeSpaceCaption и GetNeedSpaceCaption
Пишем одну такую:
procedure GetFreeSpaceCaption(Sender: TObject); /////Вычисление свободного места на диске
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ FloatToStr(round(FreeMB/1024*100)/100) + ' GB' else
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ IntToStr(FreeMB)+ ' MB';

if NeedSize > 1024 then
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ FloatToStr(round(NeedSize/1024*100)/100) + ' GB' else
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ IntToStr(NeedSize)+ ' MB';

if FreeMB < NeedSize then
WizardForm.NextButton.Enabled := False else
WizardForm.NextButton.Enabled := True; end;

а в CurPageChanged пишем так:
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpSelectProgramGroup then
begin
If WizardForm.FindComponent('NextButton') is TButton
then
TButton(WizardForm.FindComponent('NextButton')).Caption:='Установить';
end;
begin
if CurPageID=wpSelectDir then
begin
GetFreeSpaceCaption(nil); //если Свободное место на диске < требуемого, то кнопка "Установить" на PageSelectDir неактивна
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:=False
end;
end;
end;

согласен, что издевательство но переписывать кучу скрипта я не хочу...

ILIA_1992
13-07-2011, 13:24
у меня в скрипте проблемка маленькая.

Снимаю галочки
не создавать ярлык,не устанавливать доп ПО а установщик всёравно в конце устанавливает ПО и ярлык создаёт.
ПОмогите исправить

Savage-i
13-07-2011, 13:51
del

Rikill
13-07-2011, 14:11
ILIA_1992, скрипт дай, телепатов нет

ILIA_1992
13-07-2011, 14:28
Rikill, http://rghost.ru/14395401 у меня вообще нет task в скрипте
можешь убрать вот это http://ipic.su/img/img3/fs/11.1310554589.jpg

Rikill
13-07-2011, 15:02
ILIA_1992, сделал привязку ПО, потом привязку ошибки распаковки т.е. если произошла ошибка при распаковке не устанавливается по, также если х64 устанавливается vcredist_x64 если нет то vcredist_x86 ну и убрал кнопку.
Скачать (http://rghost.ru/14403931)

ILIA_1992
13-07-2011, 16:40
Rikill, спасиб

No4noylis
13-07-2011, 18:00
Edison007, Лександер, Спасибо огоромное за помощь! Я извеняюсь, но не могли бы вы указать что именно в моем скрипте такого ужасного???
А вообще, кто тебя учил ТАК писать скртпы? »
Никто не учил, все чему научился и что понял, взято с это форума!!!

ILIA_1992
13-07-2011, 18:43
Rikill, незнаешь через какую прогу можно найти файлы реестра игр например властелин колец
Я пользуюсь regedit (Стандартная прога )но она не всегда полезна,тоесть ненаходит некоторые файлы реестра.Так и с властелином ниодного файла не нашло.
Хоть и игра запускается но ролики без звука работают

Gnom_aka_Lexander
13-07-2011, 19:55
Я извеняюсь, но не могли бы вы указать что именно в моем скрипте такого ужасного? »эээ... дык, салат у тебя там. А во второх, все это можно сделать раз в пять короче. Пиши в личку, попробую объяснить, как писать скрипты так, чтоб не наворачивать столько всего ненужного. Кстати, я давно уже обратил внимание, на каждой странице инсталлятора находится обычно не больше 5-ти лейбелов, это значит, что можно задействовать одни и теже лейбелы, а на страницах менять их расположение и текст. Это экономит не меньше пары тысяч строчек.ILIA_1992, тут флудить запрещено, если что-то нужно пишем в лс »
То есть тебе не запрещено? 1 (http://forum.oszone.net/post-1712654-2345.html), 2 (http://forum.oszone.net/post-1712588-2341.html), 3 (http://forum.oszone.net/post-1712430-2334.html), 4 (http://forum.oszone.net/post-1712489-2337.html) - только то, что рядом, дальше лень просто лезть. За это тебя и забанили на руборде. Чего ты понять никак не хочеш.




© OSzone.net 2001-2012