Фокус на окно в Frame?

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
iBAH
Бывалый
Сообщения: 56
Зарегистрирован: 14 Январь 2006, 13:44
Откуда: Ярославль
Контактная информация:

Фокус на окно в Frame?

Сообщение iBAH »

Здравствуйте, хочу выполнить фокус на дочернее окно в Frame... извините за тривиальный вопрос... как это сделать?
из Frame запускаются разные процессы

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

thread1 LONG
thread2 LONG
thread1=START(SomeWin1, 25000)
thread2=START(SomeWin2, 25000)
по нажатию на кнопку хочу переключать фокус между окнами? не знаю как :oops:
ЗЫ делал EVENT:User в SomeWin...
в EVENT:User делал что-то типа SELECT(?SomeControl)
по кнопке в Frame POST(EVENT:User,,thread)...
ничего не получилось... :(
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

EVENT:BringToTop EQUATE(EVENT:User+123)

...

POST(EVENT:BringToTop,,thread1)

...

CASE EVENT()
OF EVENT:BringToTop
Window{PROP:Active} = TRUE
END

надеюсь все понятно ...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение Admin »

Кстати если окно свернуто можно еще и Window{PROP:Iconize} = False воткнуть ...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Фокус на окно в Frame?

Сообщение Andrew™ »

iBAH писал(а):Здравствуйте, хочу выполнить фокус на дочернее окно в Frame... извините за тривиальный вопрос... как это сделать?
из Frame запускаются разные процессы

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

thread1 LONG
thread2 LONG
thread1=START(SomeWin1, 25000)
thread2=START(SomeWin2, 25000)
по нажатию на кнопку хочу переключать фокус между окнами? не знаю как :oops:
ЗЫ делал EVENT:User в SomeWin...
в EVENT:User делал что-то типа SELECT(?SomeControl)
по кнопке в Frame POST(EVENT:User,,thread)...
ничего не получилось... :(
а чего

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

 SETTARGET(,thread1)
не катит, я юзаю
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Сообщение Yufil »

Admin писал(а):EVENT:BringToTop EQUATE(EVENT:User+123)

...

POST(EVENT:BringToTop,,thread1)

...

CASE EVENT()
OF EVENT:BringToTop
Window{PROP:Active} = TRUE
END

надеюсь все понятно ...
1. Общеупотребительно использование не специального Event, а Event:GainFocus для этой цели, видел несколько раз. Заодно окно, вытаскиваемое вперёд, обновится.

2. Очень полезная вещь - в System{Prop:Active} хранится номер задачи активного окна. Если управляющая кнопка на фрейме, можно проверить, кто сверху.
iBAH
Бывалый
Сообщения: 56
Зарегистрирован: 14 Январь 2006, 13:44
Откуда: Ярославль
Контактная информация:

Re: Фокус на окно в Frame?

Сообщение iBAH »

Andrew™ писал(а): а чего

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

 SETTARGET(,thread1)
не катит, я юзаю
я так делал, че то не работает... в дочернем окне то чего и где писать?
iBAH
Бывалый
Сообщения: 56
Зарегистрирован: 14 Январь 2006, 13:44
Откуда: Ярославль
Контактная информация:

Сообщение iBAH »

Admin писал(а):EVENT:BringToTop EQUATE(EVENT:User+123)

...

POST(EVENT:BringToTop,,thread1)

...

CASE EVENT()
OF EVENT:BringToTop
Window{PROP:Active} = TRUE
END

надеюсь все понятно ...
дык канечна понятно... тока как решить такую проблему... если из одного из окон, запущеных процессом, открыть какую-нибудь форму, то при переключении фокуса на другое окно обратно уже не вернуться пока не закроем форму :( ?
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Фокус на окно в Frame?

Сообщение Andrew™ »

iBAH писал(а):
Andrew™ писал(а): а чего

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

 SETTARGET(,thread1)
не катит, я юзаю
я так делал, че то не работает... в дочернем окне то чего и где писать?

проверил - стопудово работает

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

tmp  &WINDOW

       SETTARGET(,ThreadNo)
       tmp &= SYSTEM{PROP:Target}
       tmp{PROP:Active} = True
Ответить