Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Траблы с диалогами

  1. #1

    По умолчанию Траблы с диалогами

    Привет.
    Перенёс тему сюда. А то в предыдущей ветке она быстро уезжает взад.
    Итак:

    Подскажите, какая последовательно выполнения действий?
    1, потом 2? (показано красным)
    Что-то складывается ощущение, что наоборот...


    Метод, который запускается во вкладке "Выполнить СТ-код", получает нулевые значения.
    Стало быть: диалог закрылся, а значения еще не записались?

    П.С. Все переменные - глобальные Retain.


  2. #2

    По умолчанию

    Я перенес все переменные из Retain в обычные переменные, но проблема все таже.

    Я попробовал на другом железе и проблема осталась.

    Что я делаю не так?

  3. #3
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,223

    По умолчанию

    Стало быть: диалог закрылся, а значения еще не записались?
    Диалог закрылся, и вместе с ним исчез контекст для выполнения действия.
    Поэтому размещать какие-то действия следом за Закрыть диалог - бессмысленно.

  4. #4

    По умолчанию

    Ок. Понятно.

    А как можно реализовать пост-действие после закрытие диалога?

    Простой пример:
    Ввели два числа в диалоговом окне.
    После закрытия диалога нужно посчитать сумму введенных чисел.

  5. #5
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,223

    По умолчанию

    А как можно реализовать пост-действие после закрытие диалога?

    Простой пример:
    Ввели два числа в диалоговом окне.
    После закрытия диалога нужно посчитать сумму введенных чисел.
    Нужно при закрытии диалога передать эти числа в переменные программы.
    Далее в программе детектировать момент закрытия диалога и выполнить нужный код.

    В нашей библиотеке OwenVisuDialogs для детектирования используется глобальная переменная OVD.DialogsSettings.g_stClosedDialogInfo

    Также есть универсальный механизм CODESYS (IDialogCloseListener), реализованный в рамках ФБ FbOpenDialogExtended из библиотеки Visu Utils.
    Подробнее см. здесь в п. 1.4.4:
    https://ftp.owen.ru/CoDeSys3/98_Book...isuIecCode.pdf

  6. #6

    По умолчанию

    OVD.DialogsSettings.g_stClosedDialogInfo
    Эта глобальная структура видит закрытие стандартного диалога ОВЕН.
    А она видит закрытие частного (кастомного) диалога? (Вроде нет)

    Это важно, потому-что я сначала вызываю частный (кастомный) диалог, а уже в нем - вызываю стандартный диалог ОВЕН.

  7. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,223

    По умолчанию

    А она видит закрытие частного (кастомного) диалога?
    Эта структура используется только диалогами ОВЕН, входящими в состав библиотеки OwenVisuDialogs.

  8. #8

    По умолчанию

    Ну вот.

    Итак:
    1. Оператор попал на кастомный диалог. Увидел все поля с данными.
    2. Он решил править данные.
    3. Нажал на желаемое поле. Перешел на ОВЕН-диалог.
    4. Исправил данные. Закрыл ОВЕН-диалог. Я это увидел через вашу гл.структуру. Я сделал спец.действие.
    5. Но потом оператор передумал и не стал сохраняться в кастомном диалоге. Он нажал "отмена". Я это не увижу и спец.дейсвие не могу отменить!

    Ок.
    Сейчас попробую через "универсальный механизм CODESYS".

    Цель: спец.действие по закрытию кастомного (!) диалога.
    Последний раз редактировалось ВладОвен; 09.10.2024 в 16:51.

  9. #9

    По умолчанию

    Эх...
    Если у вас возникнут ошибки компиляции – то допишите к типам переменных itfDialog и pClientData пространство имен VisuElems.VisuElemsBase (так называется библиотека, в состав которой входят эти типы).
    Screenshot 2024-10-09 162443.png

    Что я делаю не так?

  10. #10
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,223

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Эх...


    Screenshot 2024-10-09 162443.png

    Что я делаю не так?
    VisuElems.VisuElemsBase

    Выделенная буква не нужна. Опечатку в документе завтра поправлю.

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •