Страница 1 из 1

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

Добавлено: 02 Октябрь 2006, 15:06
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)...
ничего не получилось... :(

Добавлено: 02 Октябрь 2006, 15:32
Admin
EVENT:BringToTop EQUATE(EVENT:User+123)

...

POST(EVENT:BringToTop,,thread1)

...

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

надеюсь все понятно ...

Добавлено: 02 Октябрь 2006, 15:35
Admin
Кстати если окно свернуто можно еще и Window{PROP:Iconize} = False воткнуть ...

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

Добавлено: 02 Октябрь 2006, 16:45
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)
не катит, я юзаю

Добавлено: 03 Октябрь 2006, 10:05
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} хранится номер задачи активного окна. Если управляющая кнопка на фрейме, можно проверить, кто сверху.

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

Добавлено: 09 Октябрь 2006, 15:52
iBAH
Andrew™ писал(а): а чего

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

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

Добавлено: 09 Октябрь 2006, 15:57
iBAH
Admin писал(а):EVENT:BringToTop EQUATE(EVENT:User+123)

...

POST(EVENT:BringToTop,,thread1)

...

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

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

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

Добавлено: 09 Октябрь 2006, 16:40
Andrew™
iBAH писал(а):
Andrew™ писал(а): а чего

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

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

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

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

tmp  &WINDOW

       SETTARGET(,ThreadNo)
       tmp &= SYSTEM{PROP:Target}
       tmp{PROP:Active} = True