Окно не всегда активно

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
Полимат
Сообщения: 1849
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 31 раз
Поблагодарили: 10 раз

Окно не всегда активно

Сообщение gopstop2007 »

Приветствую всех.
Заметил, что окно для ввода пароля открывается раньше фрейма приложения, не всегда становится активным при запуске программы.
То есть, при запуске программы, по окну с паролем надо дополнительно щёлкнуть мышью. Хотелось бы сразу вводить логин и пароль, а не заморачиваться с мышью. )
У меня всегда активно, у некоторых клиентов нет, это наблюдается при работе с windows 10.
Настройки окна не MDI, в Propererties - Option, активно только ModalWindow.
Как сделать окно всегда активным?

С10 ABC
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 5243
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 27 раз

Окно не всегда активно

Сообщение kreator »

Modal Window - нерабочая опция сейчас вроде бы. А в какой момент вызывается это окно? Я бы перенёс вызов до открытия фрейма. Уточните этот момент.
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3352
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 20 раз
Поблагодарили: 56 раз
Контактная информация:

Окно не всегда активно

Сообщение Дед Пахом »

Я бы вызывал в Event:OpenWindow фрейма.
С уважением, ДП
gopstop2007
Полимат
Сообщения: 1849
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 31 раз
Поблагодарили: 10 раз

Окно не всегда активно

Сообщение gopstop2007 »

kreator писал(а): 30 Ноябрь 2025, 15:02 Modal Window - нерабочая опция сейчас вроде бы. А в какой момент вызывается это окно? Я бы перенёс вызов до открытия фрейма. Уточните этот момент.
Открывается до открытия App Frame приложения, открытие в app frame в Embeds - Run Procedute(), BYTE, Virtual (Preority - 2250)
Дед Пахом писал(а): 30 Ноябрь 2025, 15:33 Я бы вызывал в Event:OpenWindow фрейма.
Не совсем понял, что в чем вызвать )

Забыл уточнить, это приложение мульти-DLL.
Последний раз редактировалось gopstop2007 30 Ноябрь 2025, 16:24, всего редактировалось 1 раз.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3352
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 20 раз
Поблагодарили: 56 раз
Контактная информация:

Окно не всегда активно

Сообщение Дед Пахом »

gopstop2007 писал(а): 30 Ноябрь 2025, 16:18 Не совсем понял, что в чем вызвать )
Я бы вызывал процедуру ввода пароля в Event:OpenWindow фрейма.
С уважением, ДП
gopstop2007
Полимат
Сообщения: 1849
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 31 раз
Поблагодарили: 10 раз

Окно не всегда активно

Сообщение gopstop2007 »

Дед Пахом писал(а): 30 Ноябрь 2025, 16:22
gopstop2007 писал(а): 30 Ноябрь 2025, 16:18 Не совсем понял, что в чем вызвать )
Я бы вызывал процедуру ввода пароля в Event:OpenWindow фрейма.
Много чего придется переделывать, проверка происходит до открытия, если логин или пароль не верен, то возвращается Level:Cancel и фрейм даже не открывается.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3352
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 20 раз
Поблагодарили: 56 раз
Контактная информация:

Окно не всегда активно

Сообщение Дед Пахом »

Я предпочитаю такие вещи проверять при уже открытом фрейме, так юзер видит, куда он, собственно, логинится.
И все изменения, насколько я понимаю, должны свестись к переносу 3-х строчек в другую точку.

Код: Выделить всё

!- это после OPEN(AppFrame)
!IF Login() = FALSE
!  RETURN Level:Cancel
!END

!- это в Event:OpenWindow
IF Login() = FALSE
  POST(Event:CloseWindow)
END
С уважением, ДП
gopstop2007
Полимат
Сообщения: 1849
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 31 раз
Поблагодарили: 10 раз

Окно не всегда активно

Сообщение gopstop2007 »

Дед Пахом писал(а): 30 Ноябрь 2025, 16:44 Я предпочитаю такие вещи проверять при уже открытом фрейме, так юзер видит, куда он, собственно, логинится.
И все изменения, насколько я понимаю, должны свестись к переносу 3-х строчек в другую точку.

Код: Выделить всё

!- это после OPEN(AppFrame)
!IF Login() = FALSE
!  RETURN Level:Cancel
!END

!- это в Event:OpenWindow
IF Login() = FALSE
  POST(Event:CloseWindow)
END
Если бы, у меня сделано так, программа онлайн, сначала ввод пароля, потом загрузка данных(если есть изменения) с сервера и еще некоторые мелочи.
Если сделать как Вы указали, то после ввода пароля загрузка данных будет происходить уже при открытом фрейме, их бывает достаточно много (более 100 таблиц), клиенты не любят ждать и пытаются начать работать с программой ) Потом еще в зависимости от роли (привилегии) пользователя открывается нужный вид фрейма приложения.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8310
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 34 раза
Поблагодарили: 109 раз

Окно не всегда активно

Сообщение Игорь Столяров »

gopstop2007 писал(а): 30 Ноябрь 2025, 17:04 сначала ввод пароля, потом загрузка данных(если есть изменения) с сервера
Ну так и сделайте как написали. Т.е.:

Код: Выделить всё

  StartMySoft Procedure
    Code  
    If CheckPasswordWindow() = True
       If LoadInfoServer() = True   
          Main()
       end          
    end
Нет ведь необходимости обязательно всё делать внутри фрейма (Main) ... :)
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Ответить