Jump to content
Korean Random

Kotyarko_O

Premium Member
  • Posts

    6,110
  • Joined

  • Last visited

  • Days Won

    49

Posts posted by Kotyarko_O

  1. @iogami
    Ошибка говорит, что берущийся языковой пакет взят от другой версии InnoSetup.

    Я бы предложил просто удалить этот параметр из пакета, но, предполагаю, что там есть и другие параметры, с которыми возникнет та же проблема.

    • Upvote 1
  2. @ЛОМ 
    Попробуй это сделать на диске, где нет системы. Чтобы на действия не требовались права администратора.

    Ну и, мало ли, попробуй антивирус\защитник отключить. Хотя маловероятно, что проблема в этом.

    • Upvote 2
  3. 4 hours ago, soloviyko said:

    Еще бы выгрузку лога компонентов, в MySQL или на крайняк хотя бы на FTP.

    Делал как-то для FTP, когда был доступный сервер. Ничего сложного.
     

    4 hours ago, soloviyko said:

    В google analytics можно через "events" попробовать, но выглядит коряво

    Там есть определённый лимит на объём передаваемой информации за запрос. Если всё же так делать, то придётся вручную разбивать список на части и последовательно передавать.

  4. Модуль для работы с Google Analytics в Inno Setup (и не только)

     

    Репозиторий с исходниками будет открыт позже.
    Модуль: GoogleAnalytics module.rar

    VirusTotal: https://www.virustotal.com/#/file/cf5c76271186d2fd82cb1002bdfb9124a985d58ba6fb9413c3e116910500d52a/detection

     

    Справка\Правила:

    • Upvote 3
  5. 1 hour ago, ЛОМ said:

    1-ый вопрос.

    По умолчанию, инно всегда пытается дополнять существующие записи предыдущих установок. Из-за этого и отмеченные компоненты могут перемешаться.

    Если интересно: http://www.jrsoftware.org/ishelp/topic_appendnotes.htm

    Выхода два:

    1. Отключить стандартное сохранение информации о компонентах и делать всё в рантайме: https://bitbucket.org/Kotyarko_O/kmp/src/39a2eb6f8a5e34236f1c4ab404c7ee61f27acc76/Resourses/ParamsRememberer.iss?at=master&fileviewer=file-view-default#ParamsRememberer.iss-28
      (Пример работы с реестром, но можно и стандартными средствами, записывая кастомную инфу в деинсталлятор).
    2. [Setup]
      UninstallLogMod=new

      Но при этом есть вероятность, что файлы, оставшиеся с прошлых установок, после деинсталляции останутся на своих местах (если не предусмотрено принудительное удаление).

     

    2 hours ago, ЛОМ said:

    2-ой вопрос

    Это тоже связано с правилами восстановления информации прошлых установок. Тут DefaultDirName не в приоритете.
    Но вообще, это правильно. Так инсталляторы и должны работать.

    Не нравится - используй это:

    [Setup]
    UsePreviousAppDir=no

     

    • Upvote 1
  6. @tunut 
    Как-то так: disable_Components.iss

    Теперь группы компонентов, которые нужно сделать "зависимыми", указываются просто:

    SetUncompatibleItems(CheckListBox, [priority components 1], [depended components 1]);
    SetUncompatibleItems(CheckListBox, [priority components 2], [depended components 2]);

     

    • Upvote 2
  7. @tunut 
    В идеале, сделать регистрацию "несовместимых" компонентов в более-менее удобном виде, однострочно. Ну и проверка, естественно, автоматическая, а не "вручную".

    Типа такого в итоге:

    Procedure InitializeWizard();
    begin
     ...
     SetUncompatibleItems(['Component 1'], ['Component 2', 'Component 3']);
     SetUncompatibleItems(['Component 2'], ['Component 3']);
    end;

    То есть, при выборе какого-нибудь компонента из заданного первого массива, будут отключаться все заданные из второго. В реализации ничего сложного: заполняем тип, проверку делаем из того же события (OnClickCheck), в котором просто подстановка и действия.

    А чтобы сделать компонент "серым", просто ему допиши Enabled := False.

    • Upvote 1
  8. 6 hours ago, tunut said:

    как можно сделать отключалку для компонента если выбран другой опред. компонент?

    конкретно на примере disable_Components.iss

    если выбран subComponent1 отключался бы subComponent3
    если выбран subComponent2 отключался бы subComponent4

     

    Например:

    [Code]
    Procedure ComponentsListOnClickCheck(Sender: TObject);
    begin
     with WizardForm.ComponentsList do
     begin
      if IsComponentSelected('Component0\subComponent1') then
       CheckItem(Items.IndexOf('Component 3'), coUncheck);
    
      if IsComponentSelected('Component0\subComponent2') then
       CheckItem(Items.IndexOf('Component 4'), coUncheck);
     end;
    end;
    
    Procedure InitializeWizard();
    begin
     WizardForm.ComponentsList.OnClickCheck := @ComponentsListOnClickCheck;
    end;

    Но это не удобно. Можно сделать универсальнее.

    • Upvote 1
  9. 6 hours ago, ЛОМ said:

    в чем может быть причина? думал может вдруг из за тех программ ( проверка пинга - программа танцуля ) что у меня в установщике стало срабатывать. но нет... вообще без модов сделал установщик закинул на яндекс и всё равно показывает что вирус.

    Нажимай "сообщить об ошибке" и разбирайся с тех.поддержкой.

  10. 7 hours ago, ЛОМ said:

    хотя сразу выдает ошибку

    Потому что:

    9 hours ago, Kotyarko_O said:

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

     

  11. Just now, ЛОМ said:

    чуток примера можно исходя из моего кода?

    Procedure RadioButtonOnMouseMove(Sender: TObject; ShiftState: TShiftState; X, Y: Integer);
    begin
     ...
    end;
    
    Procedure RadioButtonOnMouseLeave(Sender: TObject);
    begin
     ...
    end;
    
    ...
    
    DeleteRadioButton.OnMouseMove := @RadioButtonOnMouseMove;
    DeleteRadioButton.OnMouseLeave := @RadioButtonOnMouseLeave;

     

    • Upvote 1
  12. 1 minute ago, ЛОМ said:

    Ну так я уже пробовал... не выходит..

    И не выйдет... так.

    Во-первых, не то свойство указываешь.

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

    • Upvote 1
  13. 5 minutes ago, sergy2010 said:

    Димон ты свою обновлялку модпака в ангаре не восстанавливал или времени нету

    Игрового клиента нет, чтобы адаптировать.

     

    5 minutes ago, ЛОМ said:

    а вот именно с моим кодом его можно как то завести?  если да, то подскажи как)

    Твоим - это каким?

  14. 1 minute ago, ЛОМ said:

    а вот это всё таки как завести? ))) понимаю что достаю но всё же ))) 

    NEolXkAdTJegn2sdWqIGcg.png

    Конкретно тут используется тот же checkListBox. Если делать так как на скрине - то используй тот же способ отображения изображений.
    Но вообще, это можно сделать и с другими контролами. Например, обычный checkBox тоже имеет свойство OnMouseMove.

×
×
  • Create New...