Страница 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)