![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.129.72.151] |
![]() |
|
Сообщ.
#1
,
|
|
|
Всем привет.
Использую InstallShield 12 Premier(в принципе при желании можно проапгрейдится, но не суть). В общем такой капец приключился: 1) Есть диалог, на нем кнопка "Добавить...", ListView, по нажатии на нее нужно отобразить дочерний диалог куда пользователь что то пишет, нажимает ОК, и то что он написал в дочернем диалоге добавляется в ListView Главного диалога. Как это делается в моем инсталяторе: На кнопке "Добавить" - вешается событие на нажатие кнопки "NewDialog" "MyDialog" 1(1 - это условие) MyDialog - отображается, но главная форма, из которой он был вызван закрывается!!! При этом если ввести значение, нажать ОК, значение попадает в ListView главного диалога. При этом сделано немного через жопу, как я понял из за косяка(?) InstallShield. Т.е. на самом деле там два главных диалога, один из них клон. Если вызывать дочернее окно, не через NewDialog, а через SpawnDialog - тогда все замечательно работает. Но есть одно НО. Когда я в дочернем окне ввожу данные и жму ОК, оно закрывается, но данные не попадают в ListView. По идее данные должны попасть в ListView через Custom Actions, там есть спец функция, которая этот список и заполняет. Она отрабатывает - но изменений не наблюдается. Что не так с этим SpawnDialog? Второй момент. На главном диалоге есть помимо кнопки добавить - кнопка "Удалить". Выбираем элемент в ListView, нажимаем удалить, вызывается спец функция через Custom Action, которая отрабатывает все отлично, удаляет выбранную сущность, но список почему то не отображает изменения. В чем может быть косяк? Может быть там какой Commit надо вызвать? Или как вообще? |
Сообщ.
#2
,
|
|
|
В общем частично проблема решена. Остался вопрос с тем - как именно можно вызвать дочерний диалог, и добавить из него значения в основной. Но судя по всему тут без извращений не обойтись, и чтоб решить проблему - нужно писать код, который будет создавать диалог.
|