powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / текущий DataWindow
12 сообщений из 12, страница 1 из 1
текущий DataWindow
    #35782842
AlibekD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно определить текущую DW?
...
Рейтинг: 0 / 0
текущий DataWindow
    #35782851
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
getFocus() ?
...
Рейтинг: 0 / 0
текущий DataWindow
    #35782866
AlibekD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В окне 2 DW. В меню добавил вкладки вставку, удаление записей.
Теперь не могу определить для какой DW это событие.
Может есть событие типа post DW, там бы я записал в глобальную переменную название DW,
и при выборки в меню "Вставка","Удаление" подставлял бы из гл. пер. значение,
Подскажите как это зделать?
...
Рейтинг: 0 / 0
текущий DataWindow
    #35782980
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlibekDВ окне 2 DW. В меню добавил вкладки вставку, удаление записей.
Теперь не могу определить для какой DW это событие.
Может есть событие типа post DW, там бы я записал в глобальную переменную название DW,
и при выборки в меню "Вставка","Удаление" подставлял бы из гл. пер. значение,
Подскажите как это зделать?
Примерный ход решения вот такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
//В окне
// 1 . Объявление инстанс-переменной 
datawindow idw_current

// 2 . Событие окна, которое вызывается из меню - ue_myevent();
if isValid(idw_current) then
	idw_current.triggerevent ("ue_myevent")
end if

//В обоих DW
// 3 . event getfocus;
idw_current = this

// В каждом DW
// 4 . event ue_myevent();
MessageBox("", "DW_1")

// 5 . event ue_myevent();
MessageBox("", "DW_2")

При необходимости можно сбрасывать переменную idw_current в событии LoseFocus каждого DW.
...
Рейтинг: 0 / 0
текущий DataWindow
    #35783004
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если ты програмно не можешь разобраться, то пользователь и подавно запутается...
упрощай интерфейс.

то-что ты написал сделать можно, но это нехорошо.. имхо.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
--объявляешь инстанс переменную в окне
datawindow idw_current

--создаешь событие в окне например для удаления строки "ue_row_delete"
if isValid(idw_current) then ...

--на событии getfocus в каждом датавиндов ставишь 
idw_current=this

--в менюшке ставишь
parentwindow.triggerevent("ue_row_delete")
...
Рейтинг: 0 / 0
текущий DataWindow
    #35784332
AlibekD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо, получилось
...
Рейтинг: 0 / 0
текущий DataWindow
    #35784348
AlibekD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот при использовании Query, ошибки

idw_current.inv_querymode.of_SetEnabled(TRUE)

Error C0019: Incompatible property inv_querymode for type datawindow
...
Рейтинг: 0 / 0
текущий DataWindow
    #35784935
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
переменную idw_current можешь обьявить такого-же типа как и твои датавиндов (если они одного типа).
...
Рейтинг: 0 / 0
текущий DataWindow
    #35785201
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё, что выше сказано правильно, но этого мало. Надо задействоать ещё и другие события, например:
- окно получило/потеряло фокус;
- взаимодествия пользователя с меню;
- клавиатурные переходы и т.д.
И конечно управлять доступом к пунктам меню у каждого окна.

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

А кстати, как визуально показывать какое DW в фокусе? Есть какие-то правила или удачный опыт?
...
Рейтинг: 0 / 0
текущий DataWindow
    #35785471
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
самое простое - менять у датавиндов border
--
зачем обрабатывать другие события не понятно.
меню работает с конкретным окном.
активное датавиндов в конкретном окне - одно.
так-что если у вас переменная idw_current обьявлена в окне то не вижу никаких проблем.
getfocus должно хватать.
...
Рейтинг: 0 / 0
текущий DataWindow
    #35785679
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry..
зачем обрабатывать другие события не понятно.

Например, переход от DW к DW через другой элемент окна. Пункт меню "Печать DW" должен это отловить. Значит надо задействовать событие потери фокуса DW. Но при этом сразу возникает вопрос:
А как поведет себя пункт меню при переходе от DW к DW напрямую? Всегда ли сохранится очередность событий?
Можно ещё пофантазировать, т.к. думаю что всё же не всё так просто.

А вообще мысль ранее возникла другая: это визуально показывать не какой элемент окна в данный момент в фокусе (т.к. нет необходимости печатать кнопки и т.п. и сканировать фокусы), а именно какой элемент сейчас готов к печати (и пусть у него даже нет фокуса).
Кто что по этому поводу думает?
...
Рейтинг: 0 / 0
текущий DataWindow
    #35786763
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё... Креатив прет не по детски. :)
Бог с ним с "Печатью DW". Фокус сохраняется, но меняется содержимое DW (типа добавили или удалили) и пункт меню должен отреагировать. И шо? Мы в фокусе, а "обстоятельства" изменились. К примеру, нам уже и нечего печатать. А по серьёзному, надо управлять кнопками "Добавить", "Удалить" и т.д. и на всё предыдущее "Заказкик" уже отзывается "неприятными словами".
Хорошо если мы в Одессе.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / текущий DataWindow
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]