powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Узанть, существое форма (окно) или нет?
17 сообщений из 17, страница 1 из 1
Узанть, существое форма (окно) или нет?
    #33208575
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в РВ можно узнать сушествут форма или нет?
Вызов следующий:

Window win
String win_name

SELECT Pole
INTO :win_name
FROM Table1
WHERE ...;

// я так полагаю здесь каким то образом надо проверить существование
OpenWithParm(win, 101, win_name)

(pfc - неиспользую)
===============================
PB 9.0.2 (7534) ASA 9.0.2 (2451)
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #33208597
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пусть окна регистрируют сами себя в неком объекте - менеджере окон. У него потом и спрашивай, существует окно или нет
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #33208616
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще есть варианты?

===============================
PB 9.0.2 (7534) ASA 9.0.2 (2451)
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #33208871
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DIGITALPROКак в РВ можно узнать сушествут форма или нет?
Вызов следующий:

Window win
String win_name

SELECT Pole
INTO :win_name
FROM Table1
WHERE ...;

// я так полагаю здесь каким то образом надо проверить существование
OpenWithParm(win, 101, win_name)

(pfc - неиспользую)
===============================
PB 9.0.2 (7534) ASA 9.0.2 (2451)
Если подрузамевается окно MDI, то достаточно перебрать дочерние окна главного окна. Для других типов окон по видимому никаких стандартных способов перебрать список открытых окон или проверить на существование нет.
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #33209001
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно посмотерть список объектов в библиотеке:
Код: plaintext
1.
2.
3.
sObjects = LibraryDirectory ( 'runtime_windows', DirWindow! )
if pos(sObjects, win_name + '~t') >  0  then
  OpenWithParam(win,  101 , win_name)
end if
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #33209040
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlМожно посмотерть список объектов в библиотеке:
Код: plaintext
1.
2.
3.
sObjects = LibraryDirectory ( 'runtime_windows', DirWindow! )
if pos(sObjects, win_name + '~t') >  0  then
  OpenWithParam(win,  101 , win_name)
end if

Поскольку речь идёт об ОКНЕ , то цитируемое - микроскопом по гвоздям.
Нужно посмотреть про ClassDefinition в Хелпе...
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #33209133
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппПоскольку речь идёт об ОКНЕ , то цитируемое - микроскопом по гвоздям.
Нужно посмотреть про ClassDefinition в Хелпе...
Пример пожалуйста.
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #33209161
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
function boolean nvf_validate_pbclass (string a_s_class_name)

ClassDefinition 	cd_classdef
IF IsNull(a_s_class_name) THEN RETURN FALSE
IF trim(a_s_class_name) = "" THEN RETURN FALSE

cd_classdef = FindClassDefinition(a_s_class_name)
IF isnull(cd_classdef) THEN RETURN FALSE
RETURN TRUE
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #33209514
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
function boolean nvf_validate_pbclass (string a_s_class_name)

ClassDefinition 	cd_classdef
IF IsNull(a_s_class_name) THEN RETURN FALSE
IF trim(a_s_class_name) = "" THEN RETURN FALSE

cd_classdef = FindClassDefinition(a_s_class_name)
IF isnull(cd_classdef) THEN RETURN FALSE
RETURN TRUE


А зачем использовать nvf_validate_pbclass, ведь и так прекрасно работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ClassDefinition cd_windef
cd_windef = FindClassDefinition("w_report_ie1")

if IsNull(cd_windef) then
	MessageBox('Message', 'Нет такого окна')
else
	MessageBox('Message', 'Все ОК')
end if;

И Большое СПАСИБО!
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #33209519
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DIGITALPRO
А зачем использовать nvf_validate_pbclass, ведь и так прекрасно работает
А затем, что это намёк на нежелательность повторения этого кода каждый раз когда тебе нужно удостовериться, что класс существует...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Узанть, существое форма (окно) или нет?
    #36992584
SHKoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне нужно проверить существование какого либо окна. конкретный класс указывать не удастся. в моем приложении может быть масса открытых окон так и любое из них. перечислять все нет возможности.
потому нужно проверить, есть ли хоть одно открытое окно.
спасибо.
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #36993505
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SHKoder,

Ничего не понял, что нужно проверить? Есть ли окно? Для MDI это выполняют функциии GetFirstSheet/GetNextSheet. Для не MDI окон (и самого родительского MDI окна) внутри PB никаких функций нет. Только предварительно сохранять в переменных. Можно через функции Windows API пытаться искать у программы открытые окна, возможно так и получится чего-то понять...
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #36995596
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция вернет 1, если окно открыто.
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #36998199
yaCooler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у окон есть предок, который можно переопределить - сделай на нем менеджер окон, чтобы при открытии каждое окно в нем прописывалось, а при закрытии - удалялось.
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #36999988
SHKoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
wSheet = ParentWindow.GetFirstSheet()
IF IsValid(wSheet) THEN
	wName = wsheet.ClassName()
           MessageBox("Информация", "Необходимо закрыть все активные окна")
	return			
END IF
решил вот так
спасибо всем.
у меня MDI приложение
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #37003925
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SHKoderMessageBox("Информация", "Необходимо закрыть все активные окна")
Сам бы и позакрывал, зачем юзера об этом просить ;).
...
Рейтинг: 0 / 0
Узанть, существое форма (окно) или нет?
    #37007295
+/-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+/-
Гость
>> Сам бы и позакрывал, зачем юзера об этом просить ;).
Даже если юзер чего то там не сохранил ? или открыл отчет который строился пол-дня , а потом случайно нажал не на тот пункт меню?
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Узанть, существое форма (окно) или нет?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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