Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
Johny777, спасибо за подробные объяснения.
Однако, я видимо не совсем правильно поняла значение слова "valid", когда читала описании функций. Ибо оказалось, что эти функции работают для существующих папок и файлов :(, с которыми как раз проблем вообще нет (если папка существует, очевидно, что ее имя валидно))
Мне же нужно проверять валидность как раз в случае, если такого пути не существует
Kashtan007
10-07-2014, 17:25
Всем привет, как в установщике сделать прозрачный фон под надписями, чтобы было видно картинку?
http://rghost.ru/56805946/image.png
P.S. У меня установщик большого размера, как сделать так, чтобы когда открываешь его он был по центру монитора, а то получается нижняя часть прячется за панель задач.
P.S.S. Как сделать иконку включения\отключения музыки поверх BitMapImage? Т.е. когда я использую BitMapImage то иконки включения\отключения музыки прячется по ним, как сделать эту иконку поверх всего.
Заранее спасибо за помощь!
Kashtan007, :butcher: :moderator :offtopic:
Вот юзай.
Kashtan007
10-07-2014, 18:23
Shift85, спасибо). Это к какому из вопросов?
Это к какому из вопросов? »
Всем привет, как в установщике сделать прозрачный фон под надписями, чтобы было видно картинку? »
Johny777
10-07-2014, 18:39
Shkutu, ну тогда нужно писать свою проверку
типа первый символ - буква диска, второй - двоеточие итд
путь не должен содержать запрещённых символов:
< (less than)
> (greater than)
: (colon)
" (double quote)
/ (forward slash)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx
ещё думаю нужно учесть сетевые пути
и фиг знает что ещё
прости, но у меня сейчас сессия и я не могу писать даже такую небольшую функцию. Попробуй сама! Ok?
UPD:
вот тут есть сишная имплементация подобной проверки
Изучай :)
http://codereview.stackexchange.com/questions/4214/function-to-check-whether-a-path-is-valid-or-not-needs-your-critique
Johny777, собственно уже пишу.:)) Пока сделала чисто в инно, парингом как раз на запрещенные символы и буквы диска проверяю. Но думаю все-таки, что может лучше свою библиотеку и регулярку там заюзать)
А за пример спасибо, посмотрю:)
З.Ы. Удачи на сессии! :)
Kashtan007, В юникодной версии Inno можно в редакторе форм задействовать (http://i1.imageban.ru/out/2014/07/10/6fab6625de7722f7c8b7d78092da7203.png) прозрачность.
Пример (На ANSI код работать не будет):
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.
[Languages]
Name: default; MessagesFile: compiler:Default.isl
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: {group}\My Program; Filename: {app}\MyProg; Flags: foldershortcut
Name: {commondesktop}\My Program; Filename: {app}\MyProg; Tasks: desktopicon; Flags: foldershortcut
[Run]
Filename: {uninstallexe}; Description: Деинсталлировать Тест; Flags: nowait postinstall skipifsilent
[Co[I]de]
procedure InitializeWizard();
begin
WizardForm.WizardBitmapImage.Width := ScaleX(500);
WizardForm.WelcomeLabel1.Transparent := True;
WizardForm.WelcomeLabel2.Transparent := True;
WizardForm.WizardSmallBitmapImage.Left := ScaleX(0);
WizardForm.WizardSmallBitmapImage.Width := ScaleX(495);
WizardForm.PageDescriptionLabel.Transparent := True;
WizardForm.PageNameLabel.Transparent := True;
WizardForm.WizardBitmapImage2.Width := ScaleX(500);
WizardForm.FinishedLabel.Transparent := True;
WizardForm.FinishedHeadingLabel.Transparent := True;
end;
El Sanchez
10-07-2014, 21:39
Пока сделала чисто в инно, парингом как раз на запрещенные символы и буквы диска проверяю. Но думаю все-таки, что может лучше свою библиотеку и регулярку там заюзать) »
Shkutu, PathSearchAndQualify (http://msdn.microsoft.com/en-us/library/windows/desktop/bb773751(v=vs.85).aspx).
saneksanek
11-07-2014, 00:49
del
Kashtan007
11-07-2014, 01:20
Ребята, что здесь нужно изменить, чтобы добавить стиль на Inno Setup Unicode?
На Ansi работает с этим кодом:
#ifdef UNICODE
#define A "W"
#define SKinDll "ISSkin.dll"
#else
#define A "A"
#define SKinDll "ISSkin.dll"
#endif
#define SKin "Bigmusic.cjstyles"
#define SKinIni "NormalNormal.ini"
Как сделать, чтобы работало на юникоде.
P.S. У меня установщик большого размера, как сделать так, чтобы когда открываешь его он был по центру монитора, а то получается нижняя часть прячется за панель задач.
P.S.S. Как сделать иконку включения\отключения музыки поверх BitMapImage? Т.е. когда я использую BitMapImage то иконки включения\отключения музыки прячется по ним, как сделать эту иконку поверх всего.
Заранее спасибо за помощь!
Как сделать, чтобы работало на юникоде. »Это вопрос? Если спрашиваете, ставьте вопросительный знак.
Пример (https://mega.co.nz/#!5EUAmLRY!eApwyCM-v7vHbDrA7oGWxqEHZQ5YSkIVWB6shQNPKAo)
У меня установщик большого размера, как сделать так, чтобы когда открываешь его он был по центру монитора »
Задайте значение в Position.
Пример:
[Code]
procedure InitializeWizard();
begin
with WizardForm do
begin
Position := poScreenCenter;
ClientHeight := ScaleY(497);
ClientWidth := ScaleX(856);
end;
end;
Как сделать иконку включения\отключения музыки поверх BitMapImage? »
Задайте значение в Parent
Пример:
[Code]
var
NewButton1: TNewButton;
procedure InitializeWizard();
begin
NewButton1 := TNewButton.Create(WizardForm);
with NewButton1 do
begin
Parent := WizardForm;
Left := ScaleX(24);
Top := ScaleY(325);
Width := ScaleX(75);
Height := ScaleY(25);
Caption := 'NewButton1';
end;
end;
Пытаюсь реализовать следующие:
[UninstallRun]
Filename: {reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{7A3C7E05-EE37-47D6-99E1-2EB05A3DA3F7%7d,ModifyPath}; Flags: skipifdoesntexist
Если "ModifyPath"="MyProg.exe", то MyProg.exe запускается. А вот если "ModifyPath"="MyProg.exe /parameter", то приложение не запускается. Как быть? С кавычками игрался, может что-то не правильно делал, не получается. Хелп, плиз.
Kashtan007
11-07-2014, 11:25
Nordek, спасибо большое за помощь. Все работает!)
saneksanek
11-07-2014, 13:20
Можно-ли как-то добавить в басс стартовую громкость?
То есть чтобы играло при запуске не на все 100% а только на 10% к примеру,порылся в модулях нечего не нашел.
boss911, [UninstallRun]
Filename: {reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{7A3C7E05-EE37-47D6-99E1-2EB05A3DA3F7%7d,ModifyPath}; Parameters: /SILENT; Flags: shellexec
Kashtan007
11-07-2014, 13:54
Еще возник такой вопрос, я использовал Transparent для того чтобы сделать текст без фона, но теперь я не могу изменить цвет шрифта и размер. Пробовал уже и через код и через редактор форм, но цвет остается черный, но когда я возвращаю фон то цвет текста меняется. Можно ли как-то сделать текст другого цвета? Заранее спасибо за помощь!
P.S. Как в юникоде сделать кликабельные иконки? например: на нижней панели есть значок ютуба на него нажимаешь и открывается канал на ютубе. А анси работало это:
begin
ExtractTemporaryFile('Лого.bmp')
BtnPanel:=TPanel.Create(WizardForm)
with BtnPanel do begin
Left:=562
Top:=0
Width:=78
Height:=43
Cursor:=crHand
OnClick:=@logoOnClick
Parent:=WizardForm;
end
BtnImage:=TBitmapImage.Create(WizardForm)
with BtnImage do begin
AutoSize:=True;
Enabled:=False;
Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\Лого.bmp')
Parent:=BtnPanel
end
end;
На юникоде этот способ не работает(
Заранее спасибо за помощь!
Nordek
Если бы это было так просто, я бы так и поступил. Мне важно запустить приложение так, как это прописано в параметре "ModifyPath" в вышеуказанной ветке реестра, а там может быть что угодно, чего я предусмотреть (нужный параметр) не могу. Сдается мне, что константа {reg} слегка убога, не умеет читать строку (значение параметра) с пробелами. Может и умеет, но я не знаю как, собственно и как по-другому пояснить эту ситуацию. Видимо без [Code] тут не обойтись.
El Sanchez, спасибо, похоже на то, что нужно. Но такой момент есть. Для того, чтобы узнать, что вводимый путь был корректным, его можно сравнить с тем, что получается в результате функции и кладется во 2й параметр. Однако, для корректной работы функции, надо чтобы размер второй строки был больше длины изначальной. В итоге получается, что 2 одинаковые по содержанию (текстовому) строки, по факту отличаются и сравнение не проходит. Не подскажете, что с этим можно сделать?
Dodakaedr
12-07-2014, 18:45
Kashtan007, Скрипт покажите!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC