powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / активность формы среди прочих форм
10 сообщений из 10, страница 1 из 1
активность формы среди прочих форм
    #37050268
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток!
Не могу понять что еще такого надо подсунуть лисе, чтобы она сделала активным окно.
В чем трабла: приложение на основе _Screen, имеется панель кнопок; для предотвращения повторного запуска форм есть функция, анализирующая наличие запущенной формы; хотелось бы сделать активным окно среди нескольких запущенных других форм при повторном нажатии на кнопу (на панели кнопок).
как только не изголялся, пролистал форум (кое-что нашел, на ) не помогло. Формы не модальные. show() - не помогает.

Народ, подскажите плз.
...
Рейтинг: 0 / 0
активность формы среди прочих форм
    #37050273
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
плин и ссылку не сохраняет
...
Рейтинг: 0 / 0
активность формы среди прочих форм
    #37050285
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StQFox,

ACTIVATE WINDOW WindowName1 не помогает?
...
Рейтинг: 0 / 0
активность формы среди прочих форм
    #37050325
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
igorbik,

и этот тривиальный подход использовал, увы...
...
Рейтинг: 0 / 0
активность формы среди прочих форм
    #37050598
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StQFoxДоброе время суток!
Не могу понять что еще такого надо подсунуть лисе, чтобы она сделала активным окно.
В чем трабла: приложение на основе _Screen, имеется панель кнопок; для предотвращения повторного запуска форм есть функция, анализирующая наличие запущенной формы; хотелось бы сделать активным окно среди нескольких запущенных других форм при повторном нажатии на кнопу (на панели кнопок).
как только не изголялся, пролистал форум (кое-что нашел, на ) не помогло. Формы не модальные. show() - не помогает.

Народ, подскажите плз.
Очень странно!
Все время так работало:
Просмотр коллекции _SCREEN.Forms и активизации нужной формы через метод Show()
Покажите ваш код анализа запущенной формы.
С уважением, Алексей
...
Рейтинг: 0 / 0
активность формы среди прочих форм
    #37050618
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы не путаете понятия "активное окно" и "окно на переднем плане"? Окно вполне может быть активным, но "под" другими окнами. И еще, надеюсь, это не формы из FormSet? Там своя специфика...
...
Рейтинг: 0 / 0
активность формы среди прочих форм
    #37050642
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМВы не путаете понятия "активное окно" и "окно на переднем плане"? Окно вполне может быть активным, но "под" другими окнами. И еще, надеюсь, это не формы из FormSet? Там своя специфика...

Конечно же, уважаемые форумчане, - прошу прощения за неточность. Окно должно быть именно на переднем плане. Набор форм FormSet не используется.

Листинг не привожу по причине - уточнения проблемы.
...
Рейтинг: 0 / 0
активность формы среди прочих форм
    #37050687
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StQFoxНе могу понять что еще такого надо подсунуть лисе, чтобы она сделала активным окно.

Вызываем форму prihs.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
DO FORM prihs NAME prihs linked
IF isform('prihs')> 0  && проверка её наличия на экране
	givefocus('prihs') && если найдена, дать ей фокус
	return
endif

******************************
Function isform
******************************
* Проверка наличия на экране
* формы, заданной именем.
* Возвращает числовое значение.
param form_name
local i,ii
for i= 1  to _SCREEN.formcount
	ii=_SCREEN.forms(i)
	if ALLTRIM(upper(ii.name))==alltrim(upper(form_name))
		return i
	endif
next
return  0 

******************************
Function givefocus
******************************
* Перевести фокус на форму
* по ее имени.
param form_name
local i,ii
for i= 1  to _SCREEN.formcount
	ii=_SCREEN.forms(i)
	if ALLTRIM(UPPER(ii.name))==ALLTRIM(UPPER(form_name))
		ii.windowstate= 0 
		ii.show
		exit
	endif
next
return .f.
...
Рейтинг: 0 / 0
активность формы среди прочих форм
    #37050745
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверьте у проблемной формы свойство

Form.AlwaysOnBottom

либо у остальных открытых форм свойство

Form.AlwaysOnTop

Кроме того, желательно убедится, что проблемная форма действительно становится активной. Это можно проверить через ссылку

_VFP.ActiveForm

Если это будет ссылка на нужную форму (после show()), значит форма стала активной, но просто осталась "под" другими формами. Тогда надо смотреть, почему она осталась "под" или почему осталные оказались "над".
...
Рейтинг: 0 / 0
активность формы среди прочих форм
    #37050769
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю всех за ответы. Владимир, свойства AlwaysOnBottom и AlwaysOnTop в дефолте. Модифицировал строки обращения к форме, в частности через перебор _SCREEN.forms(i), а затем получив индекс формы, использовал show().
У меня при запуске формы не используется Linked, видимо поэтому при обращении к форме (получается по имени *.scx) возникла проблема.
Спасибо!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / активность формы среди прочих форм
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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