Страница 1 из 1
Добавлено: 12 Май 2005, 14:58
Гость
Еще раз вынужден обратиться к всезнающему сообществу, с никак не разрешаемой своими силами, задачей.
Иметься Frame из которого запускаются два окна:
Start(MyTableBrowse,50000)
Start(PanelNoteWindow,20000)
Причем последнее окно – ToolBox.
И никак не получается после этих манипуляций вернуть фокус на первое окно (MyTableBrowse).
Кто-то ранее писал (отвечал), что у него, наоборот, не получается оставить фокус на таком окне. По этому поводу подготовил пример (апликуху). Кто возьмется помочь? Куда скинуть?
С уважением, все еще пока
NewUser
Написал: NewUser(217)
Добавлено: 13 Май 2005, 3:52
StillZero
Start(MyTableBrowse,50000)
Start(PanelNoteWindow,20000)
старт потоков та еще штука

как простой вариант: а не поменять ли местами вызов окон
Код: Выделить всё
Start(PanelNoteWindow,20000)
YIELD
Start(MyTableBrowse,50000)
еще вариант: запускать окно тулбокса из окна брауза..или наоборот
и еще:
Код: Выделить всё
GLO:Thread LONG ! глобальная переменная
GLO:Thread = Start(MyTableBrowse,50000)
YIELD
Start(PanelNoteWindow,20000)
...а в окне PanelNoteWindow:
post(EVENT:GainFocus,,GLO:Thread) ! так наверное
Написал: PAA(27)
Добавлено: 13 Май 2005, 11:19
Гость
Первый способ
> Start(PanelNoteWindow,20000)
>YIELD
>Start(MyTableBrowse,50000)
не годиться. Потому, что не так сформулировал задачу. Надо так:
при перемещении курсором по списку таблицы в окне MyTable, в зависимости, внесены ли данные в MYT:Note, запускать или убирать окно PanelNoteWindow.
В точке вставки Browse MyTableBrowse Take New Selection пишу:
IF MYT:Note <> ‘’
IF GLO:NotePanelThread = 0 ! Панель не запущена
Start(PanelNoteWindow,20000)
End
elsif GLO:NotePanelThread <> 0
POST(Event:CloseWindow,,GLO:NotePanelThread)
GLO:NotePanelThread = 0
End
В окне PanelNoteWindow в точке Timer вставляю код:
If loc:StartThisWindow = 0 ! При запуске окна - ноль
loc:StartThisWindow = 1
POST(EVENT:GainFocus,,GLO:MyTableThread)
End
Фокус не возвращается….

Написал: NewUser(217)
Добавлено: 13 Май 2005, 12:24
Гость
попробуй вместо
POST(EVENT:GainFocus,,GLO:MyTableThread)
послать
POST(EVENT:User,,GLO:MyTableThread)
а в обработчике события EVENT:User в процедуре с браузером сделать банальный
SELECT(<?List>)
Написал: Вадим Синявский(200)
Добавлено: 13 Май 2005, 15:19
Гость
Именно то, что нужно!!!
Огромное спасибо, PAA aka Still Zero и Вадим, за помощь!
Написал: NewUser(217)