Jump to content
Korean Random

Kotyarko_O

Premium Member
  • Posts

    6,110
  • Joined

  • Last visited

  • Days Won

    49

Posts posted by Kotyarko_O

  1. 1 minute ago, Alex_ said:

    1. но WizardForm.ComponentsList.Items выдает текстовое название пункта, а не его "name" 'KMP\punkt1'

    Тут я проглядел, при чтении предыдущего вопроса. Думал, что имеется ввиду просто прошерстить все компоненты. Но если речь конкретно об имени в [Components], то, как я уже говорил, никак.

     

    4 minutes ago, Alex_ said:

    2. Еще вопрос, как реализовать смену текстовых значений пунктов при выборе другого языка установки (русский, английский).Есть готовые решения?

    Есть:

    [Languages]
    Name: En; MessagesFile: "English.isl";
    Name: Ru; MessagesFile: "Russian.isl";
    
    [CustomMessages]
    En.FirstComponent=First component.
    Ru.FirstComponent=Первый компонент.
    
    [Components]
    Name: A; Description: "{cm:FirstComponent}";

     

  2. Edited by Kotyarko_O

    28 minutes ago, Alex_ said:

    1. т.е. только IsComponentSelected('KMP\punkt1').?

    Да.

     

    28 minutes ago, Alex_ said:

    2. а как функцию выше переделать, чтобы она выдавала все названия 'KMP\***'  (т.е. спускалась "ниже")?

    Если конкретно все, то простой пробежкой по циклу:

    var
     I: Integer;
     S: String;
    begin
     for I := 0 to WizardForm.ComponentsList.ItemCount - 1 do
      S := S + WizardForm.ComponentsList.Items[I] + #13#10;

    Если все дочерние от конкретного компонента, то нужно внедрять в цикл фильтр уровня (ItemLevel - одно из свойств компонента). Пример работы с ним можно найти тут: https://bitbucket.org/Kotyarko_O/kmp/src/master/Resourses/ReadyMemo.iss.

  3. Edited by Kotyarko_O

    46 minutes ago, Alex_ said:

    т.к поиск по имени не срабатывает при отсутствии русской кодировки.

    Если 1251 (кириллица) не определена для ACP в кодовых страницах, то ни о каком поиске речи идти не может, ведь даже отображение кириллицы не будет нормальным. Тут надо решать проблему или указанием пользователю настроек региональных стандартов, или делать полноценный перевод.

     

    46 minutes ago, Alex_ said:

    А как сделать деревянную функцию поиска этого 'KMP\punkt1' в функции ниже?

    Никак. Обработка этих имён находится на уровне ниже (https://github.com/jrsoftware/issrc/blob/master/Projects/Struct.pas#L174).

  4. 47 minutes ago, Alex_ said:

    3. Это все замечательно работает, но не не в странах, где нет русской кодировки. т.е. на этапе поиска/одобрения этого пункта идет затык.

    Речь идёт про "поиск\одобрение" какого конкретно "пункта"? Компонента в списке или строки в конфиге?

     

    49 minutes ago, Alex_ said:

    Есть еще строчки вида
    Name: KMP\punkt1; Description: "{cm:CompName1}";    Flags:  disablenouninstallwarning;     Types: custom;

    Вероятно можно делать поиск по  "KMP\punkt1", но тогда какие параметры запроса должны быть в 
    _IsComponentSelected(WizardForm.ComponentsList, Name);

    и какая сама функция _IsComponentSelected должна быть?
    Мы должны искать вместо:
    Idx := CheckListBox.Items.IndexOf(Name);
    искать
    Idx := CheckListBox.Items.IndexOfName( 'KMP\punkt1');
    Но при этом ничего не ищет.

    Можно просто использовать стандартную функцию, предназначенную для этой цели: IsComponentSelected('KMP\punkt1').

  5. @DKRUBEN , i don`t see any mistakes can throw compiler error with "components" more (like that on the screenshot you attached before). Maybe your current error differ from previous?

     

    All i can see now, is potentional errors, like: SetInstallStatus(), SetCheckListBoxBGBMP(), SetCheckListBoxEvents() - them are declared in separate script, and you could forgot to copy.

     

    You can attach your project archive, i`ll check it (in PM if you don`t want to share it to public).

    • Upvote 1
  6. Edited by Kotyarko_O

    @DKRUBEN , i have looked into sources from repository and understood there`s a mistakes, one of them you`ve found. 

    Remote repo i didn`t update about few month and have worked only in local. I`ll try to update remote repo asap.

     

    If you are using standard components page, you have to create "KMP\MCT\*" components. Else (page is custom) you have to change "Components" to "Check" in your [Files] section, like "Check: ComponentsChecked('some_item_name')".

     

  7. Edited by Kotyarko_O

    50 minutes ago, Furious said:

    Указание всех подпапок в папке тоже приводит к удалению всей папки

    У меня два предположения:

    1. В коде деинсталляции прописано удаление папки "{#Patch}".
    2. В секциях инсталляции прописано удаление папки "{#Patch}" с её пересозданием. В таком случае эта папка, созданная установщиком, заносится в реестр файлов деинсталлятора, которые он должен удалить при деинсталляции автоматически. Что и происходит.
       
    50 minutes ago, Furious said:

    Такие варианты приводят к удалению папки х.х.х.х целиком, после чего клиент не стартует, восстановление клиента папку не восстанавливает.

    ОС забыли переустановить. (сарказм)

    Папку никто не запрещает создать вручную, через проводник.

    • Upvote 2
  8. 33 minutes ago, ShuraBB said:

    А нет ссылочки на полное описание элементов?

    Полное, но без наглядного обзора, тут: http://www.jrsoftware.org/ishelp/topic_scriptclasses.htm#TWizardForm

    А вообще, для просмотра и редактирования удобно использовать расширенный компилятор (закинуть в корневую папку инно): Compil32Ex.rar

    Выглядит так:

    2018-06-28_22-34-59.thumb.png.d3c860a166ca713d8bb53b4716721701.png

    • Upvote 2
  9. 15 minutes ago, Molnio said:

    у меня модпак протанки и там есть этот мод или аддон там три варианта (обзор и КД) (Вся инфа) (Вся инфа цветная).

    Я не имею понятия, под каким видом там выполнена инфо-панель. Но исходя из скрина вашего конфига, прикреплённого выше, там отдельная модификация.

     

    18 minutes ago, Molnio said:

    Скажите пожалуйста, если я установлю ваш аддон он не наложится поверх того что уже стоит в модпаке. Или нужно переставлять мод пак без инфо панели?

    Скорее всего, наложится в виде отдельной модификации со схожим функционалом. Если вы хотите использовать этот аддон, то да, вам понадобится переустановка без той инфо-панели.

  10. @hakabase, you made a mistake in AddItemURLLink-procedure. First argument must be a CheckListBox, which contains your component with URL. And a second argument - name of your component.

    So, you have to change this:

     AddItemURLLink(3, 'A', 'www.google.com');
     AddItemURLLink(4, 'B', 'www.facebook.com');

    On this:

     AddItemURLLink(WizardForm.ComponentsList, CustomMessage('test_1'), 'www.google.com');
     AddItemURLLink(WizardForm.ComponentsList, CustomMessage('test_2'), 'www.facebook.com');

     

  11. Edited by Kotyarko_O

    59 minutes ago, hakabase said:

    My queston is : If I want the caption ' Visit Author ' invisible when user selects nothing or highlights an item without link. how should I do?

    Try this: ItemURLLink.iss

    To set a link to the item you have to register data, like this:

    AddItemURLLink(x, 'y', 'z');

    Where:

    • x - current CheckListBox (WizardForm.ComponentList or other custom TNewCheckListBox);
    • y - caption of the item you want to link with URL - z;
    • z - URL.
  12. Edited by Kotyarko_O

    1 hour ago, hakabase said:

    Is there any example for showing how to add links for some specific components which allow us to visit modder's site?

    No. But there`s nothing difficult.

    Same as items descriptions, you have to create regular label (for example), which will change self caption according to focused item. And set "OnClick"-event for this label - for links executing.

×
×
  • Create New...