Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как создать раскрывающиеся список компонентов?


Автор: Skaner 9.11.2008, 14:03
Всем привет!Скажите пожалуйста как создать раскрывающиеся список дополнительных компонентов?Список я создал только получилось всё в одном списке.

вот сам код

Код

[Components]
Name: "program"; Description: "Program Files"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "Help File"; Types: full
Name: "readme"; Description: "Readme File"; Types: full
Name: "readme\en"; Description: "English"; Flags: exclusive
Name: "readme\de"; Description: "German"; Flags: exclusive

[Files]
Source: "MyProg.exe"; DestDir: "{app}"; Components: program
Source: "MyProg.chm"; DestDir: "{app}"; Components: help
Source: "Readme.txt"; DestDir: "{app}"; Components: readme\en; Flags: isreadme
Source: "Readme-German.txt"; DestName: "Liesmich.txt"; DestDir: "{app}"; Components: readme\de; Flags: isreadme


Скажите пожалуйста как сделать чтобы выглядело вот так

user posted image

P.s Также есть вопрос!Как создать дополнительное окно перед установкой где нужно будет вводить специальный ключ?Подскажите пожалуйста.

Спасибо!

Автор: Akella 10.11.2008, 09:04
Skaner, ошибка в 17ой строке

Автор: pseud 10.11.2008, 10:27
Цитата(Skaner @  9.11.2008,  14:03 Найти цитируемый пост)
Скажите пожалуйста как создать раскрывающиеся список дополнительных компонентов?

TComboBox

Цитата(Skaner @  9.11.2008,  14:03 Найти цитируемый пост)
Список я создал только получилось всё в одном списке

Создай много списков TComboBox

Цитата(Skaner @  9.11.2008,  14:03 Найти цитируемый пост)
вот сам код

пойду куплю книгу по дельфи

Цитата(Skaner @  9.11.2008,  14:03 Найти цитируемый пост)
Скажите пожалуйста как сделать чтобы выглядело вот так

DevExpressTreeList

Цитата(Skaner @  9.11.2008,  14:03 Найти цитируемый пост)
Как создать дополнительное окно перед установкой где нужно будет вводить специальный ключ?

дополнительное окно кому и куда и что за ключ?

Цитата(Skaner @  9.11.2008,  14:03 Найти цитируемый пост)
Спасибо!

Заходи еще.

Как говорится: "Какой вопрос..."  smile 

Автор: Bose 10.11.2008, 14:53
Skaner, а причём тут Delphi? 

Автор: Poseidon 10.11.2008, 15:02
Да ладно, чго выпридрались. Видно же что это Inno-скрипт. Ну да, надо было указать это конечно. А еще не в том разделе тема, но это ведь не повод так вредничать smile

Цитата(Skaner @  9.11.2008,  14:03 Найти цитируемый пост)
Скажите пожалуйста как сделать чтобы выглядело вот так
Для твоего примера будет примерно так:
Код

[Types]
Name: "custom"; Description: "Custom installation"; Flags: iscustom

[Components]
Name: "Interfaces"; Description: "User Interfaces"; Types: custom
Name: "Interfaces\Modern"; Description: "Modern User In"; Types: custom
Name: "Interfaces\Default"; Description: "Default User In"; Types: custom


Цитата(Skaner @  9.11.2008,  14:03 Найти цитируемый пост)
Как создать дополнительное окно перед установкой где нужно будет вводить специальный ключ?
Добавь параметр Password в секцию [Setup]. Т.е., к примеру:
Код

[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
OutputDir=userdocs:Inno Setup Examples Output
Password=1234;

Только есть одно но: используя пароль, нужно задать директиве Encryption значение yes, иначе файлы сохранятся как простой текст и получить к ним доступ не составит труда. Но при этом поддержка шифрования не включена в Inno Setup напрямую, ее следует скачать и установить отдельно. Информацию об этом можно найти на английском сайте программы в разделе Downloads.




Автор: Skaner 11.11.2008, 04:40
Цитата

Добавь параметр Password в секцию [Setup]


Про пароль это я знаю.Как создать окно как нпример при установке Windows,чтобы ключ вводить.

Автор: Poseidon 11.11.2008, 17:17
Цитата(Skaner @  11.11.2008,  04:40 Найти цитируемый пост)
Как создать окно как нпример при установке Windows,чтобы ключ вводить
Ну раз Password не устраивает, тогда ручками через секцию [CODE]. Есть там такая процедурка: InitializeWizard. Посмотри в примерах CodeClasses.iss

Автор: kemiisto 11.11.2008, 17:27
Код

function CheckPassword(Password: String): Boolean;
 
Если в секции [Сode] будет обнаружен это обработчик, то мастер отобразит страница ввода пароля (Password page) и вызовет этот обработчик для проверки правильности ввода. Верните True, если пароль введен верно и False в ином случае. Введенный пользователем пароль передается через параметр Password. 

Можно было бы написать что-нибудь типа:
Код

function CheckPassword(Password: String): Boolean;
begin
  if Password = '120885' then
    Result := True;
end;

Но тут есть одно НО! Разработчик Inno Setup настоятельно рекомендует не хранить сам пароль, а использовать сравнение по хеш-сумме. Для этого необходимо самому вычислить MD5 хеш-сумму пароля, а затем сравнить значение GetMD5OfString(Password) с этим значением. При таком подходе фактическое значение пароля остается защищенным.    
Код

function CheckPassword(Password: String): Boolean;
begin
  if GetMD5OfString(Password) = '057667becf2d6f53a5cb71f24fdd11b4' then
    Result := True;
end;

Полный код примера находится в аттаче. Взял http://forum.vingrad.ru/articles/topic-201363.html.

Автор: Poseidon 11.11.2008, 17:34
kemiisto, CheckPassword в [CODE] аналогично Password в [Setup]

Автор: Skaner 30.11.2008, 04:05
Нашёл то что искал.Но не могу скомпилировать код.Выдаёт ошибку.Помогите разобраться.Комментарии и ридми на китайском.


Автор: Poseidon 30.11.2008, 17:09
  • Где ты нашел параметр ComponentsListTVStyle в [Setup]?
  • Флаг Collapsed в [Components] - это что?
Дальше не разбирал, не охота копаться в аброкадабре.

Автор: Skaner 30.11.2008, 22:10
Скрипт не мой.Скачал из интернета.Кто может написать пример скрипта раскрывающего дерева?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)