PDA

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


Страниц : 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

Rosich
04-08-2009, 10:56
Rosich, немного подредактировал ваш скрипт, он стал на 250 строк меньше...
Проверьте на работоспособность. »
СПАСИБО БОЛЬШОЕ!!! Но ругается, однако! http://img7.imageshost.ru/imgs/090804/fc56a82992/t1d755.jpg (http://imageshost.ru/links/3093802391933058095568698e93cc98)

A1EXXX
04-08-2009, 12:06
Цитата Serega:
Rosich, немного подредактировал ваш скрипт, он стал на 250 строк меньше...
Проверьте на работоспособность. »
СПАСИБО БОЛЬШОЕ!!! Но ругается, однако! »
попробуй первые два значения изменить на 0... типо так (0, 0, 121, 25)

Rosich
04-08-2009, 12:12
попробуй первые два значения изменить на 0... типо так (0, 0, 121, 25) »
Результат - тот же!

BlackSelf
04-08-2009, 13:41
Rosich, запишите так: SetBounds (40, 102, 121, 25);
И так со всеми командами SetBounds.

Drongo
04-08-2009, 15:04
Лучше подождите спеца - Serega - пропишет что нужно, в прямом смысле этого слова. ;)

Rosich
04-08-2009, 15:14
запишите так: SetBounds (40, 102, 121, 25);
И так со всеми командами SetBounds. »
Спасибо, конечно, но: все великолепно скомпилировалось, зато при запуске получается так:
http://img7.imageshost.ru/imgs/090804/bb7355791f/t181bc.jpg (http://imageshost.ru/links/a0124b57ad68c58b33f0e0af3810b2ab)

У меня еще одна проблема наклюнулась: сегодня я экстренно прервал установку программы и она вылетела. Получается так, что во время бекапа файлы перемещаются в папку "Backup", а если прервать установку – то файлы-клоны, если и успели скопироваться, просто удаляются и все!!! Папка "Backup", вместе с файлами, осталась на месте, а файлы-дубли удалились. Подскажите, пожалуйста, как этого избежать или хотя бы на время установки файлов кнопку "отмена" сделать неактивной. Идеальный вариант: нажимаешь кнопку "отмена" файлы из папки "Backup" восстанавливаются на свои места.

Лучше подождите спеца - Serega - пропишет что нужно, в прямом смысле этого слова. »
Поддерживаю, без Serega жизнь была бы скушна! У него есть решения на все случаи жизни.

Serega
04-08-2009, 15:28
Но ругается, однако! »
Извините Rosich, недаром говорят - ночью спать надо :)
BlackSelf всё правильно сказал:
запишите так: SetBounds (40, 102, 121, 25); »
Спасибо, за корректировку...
все великолепно скомпилировалось, зато при запуске получается так: »
Сейчас гляну, что не так...
У меня еще одна проблема наклюнулась: »
т.е. она появилась с этим скриптом или вы просто её раньше не замечали?

Serega
04-08-2009, 15:51
Rosich, попробуйте:

Rosich
04-08-2009, 16:03
т.е. она появилась с этим скриптом или вы просто её раньше не замечали? »
Скорее всего - второе. Я это примерно знал и раньше, просто закрывал глаза, а сейчас лбом ударился - глупо теперь прятать голову в песок.
Суть проблемы такова: скрипт, который брался изначально, не предусматривал "обратный бекап", то есть он копирует определенные файлы в указанную папку и при деинсталляции из этой папки возвращает файлы назад. Отката как такового в этом скрипте не предусмотрено. Если во время копирования нажать кнопку "отмена", примерно как это сделал я, то оригиналы файлов остаются в папке бекапа, а файлы-клоны просто удаляются и так как процесс установки незавершен - деинсталлятора нет, соответственно: файлы-оригиналы назад не возвращаются! Как этого избежать я не знаю, самый легкий путь - запретить пользователю отменять установку программы, или просто кнопку "отмена" сделать неактивной. Но хотелось бы не так топорно, а поизящней.

Serega
04-08-2009, 16:10
на время установки файлов кнопку "отмена" сделать неактивной »
Замените в скрипте procedure CurPageChanged, на эту:
procedure CurPageChanged(CurPageID: Integer);
var
ResultCode: Integer;
UnInstallPath: string;
begin
PageID:= CurPageID;
PageNameLabel.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel1.Caption:= 'Апаратное Обеспечение';
PageDescriptionLabel1.Caption:= 'Программа установки обнаружила следуюшие необходимые компоненты';
PageNameLabel2.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel2.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel3.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel3.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel4.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel4.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel5.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel5.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel6.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel6.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel7.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel7.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel8.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel8.Caption:= WizardForm.PageDescriptionLabel.Caption;
if CurPageID = wpSelectDir then
begin
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:= False;
end;
if CurPageID = wpReady then
begin
WizardForm.BackButton.Enabled:= False;
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C05D8CDB-417D-4335-A38C-A0659EDFD6B8}_is1','UninstallString', UnInstallPath);
UnInstallPath:= RemoveQuotes(UnInstallPath);
Exec(UnInstallPath, '/VERYSILENT','', SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
if CurPageID = wpInstalling then
WizardForm.CancelButton.Enabled:= False;
if CurPageID = wpFinished then
WizardForm.Position:= poScreenCenter;
end;

Rosich
04-08-2009, 16:17
Serega
Спасибо за процедуру CurPageChanged.
А можно сделать откат файлов, чтобы при нажатии на кнопку "отмена" файлы-оригиналы возвращались на свои места?

P.S.
Проверил скрипт без процедуры и с процедурой, есть такая вот ошибка http://img7.imageshost.ru/imgs/090804/0224ce6bf4/t11e2f.jpg (http://imageshost.ru/links/77c7936f86ec85f21f269a7eb2ce1d2e) нет фонового изображения, и только на одной странице, сама процедура работает идеально. Но в коде, который я брал за основу своего скрипта, есть скрытая ошибка: при проверке аппаратных средств, если параметры компьютера не соответствуют выставленным параметрам в скрипте, то инсталлятор не запускается и выдает ошибку. Об этом я узнал совсем недавно, но может эта ошибка кода не перешла в Ваш скрипт, надо проверить!

Проверил, к сожалению, эта ошибка перекочевала и в Ваш код: http://img7.imageshost.ru/imgs/090804/b17cd89849/tb5e4e.jpg (http://imageshost.ru/links/a14f1098c2a6017e55c066b413f696a3)

Serega
04-08-2009, 17:06
Проверил скрипт без процедуры и с процедурой, есть такая вот ошибка »
Замените одноименную процедуру в скрипте на эту:
function DelSp(s: string): string;
begin
StringChange(s, ' ', '');
Result:= Trim(s);
end;

Serega
04-08-2009, 17:41
Проверил, к сожалению, эта ошибка перекочевала и в Ваш код: »
Ошибка возникает из-за того, что контрол ещё не создан, а вы пытаетесь присвоить значение Caption:=..., т.е. Caption ещё не создан.
Хотя я и сам не обратил на это внимание... пишу так сказать на память, без проверки...
В procedure InitializeWizard переместите строку CheckSystemPage(wpLicense); в самый конец procedure InitializeWizard прямо перед end;

Rosich
04-08-2009, 17:44
Замените одноименную процедуру в скрипте на эту: »
Спасибо конечно, но: пробелы исправились, фоновой картинки - нет. Получилось: http://img7.imageshost.ru/imgs/090804/37a9929530/t98dd2.jpg (http://imageshost.ru/links/c267296e39e7fde1964e9b1d4ec611c2)

Serega
04-08-2009, 17:46
фоновой картинки - нет. »
а насколько я понимаю, её нет только на этой странице?

Rosich
04-08-2009, 17:53
а насколько я понимаю, её нет только на этой странице? »
Да.

Serega
04-08-2009, 18:11
Rosich, прикрепил к сообщению исправленный скрипт.

Rosich
04-08-2009, 18:28
пока ничего умней в голову не приходит, добавьте в procedure InitializeWizard: »
При запуске выскакивает такая вот ошибка: http://img7.imageshost.ru/imgs/090804/80f8a29158/t0a949.jpg (http://imageshost.ru/links/980f8a3c7caa5a1cf2c3a916a1dcfd19)

Serega
04-08-2009, 19:45
Rosich, вроде всё исправил, сам скрипт прикрепил к предыдущему сообщению.

Rosich
04-08-2009, 20:38
вроде всё исправил, сам скрипт прикрепил к предыдущему сообщению. »
Спасибо!!! Вроде работает все, кроме восстановления файлов при нажатии кнопки "Отмена". Посмотрите пожалуйсто еще раз, если ничего не выйдет, придется отключить кнопку.




© OSzone.net 2001-2012