Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Программная активация Top-level формы / 11 сообщений из 11, страница 1 из 1
23.05.2013, 10:16
    #38269526
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная активация Top-level формы
Доброго времени суток!

Главная Top-level форма (Application.Visible = .F.) проекта почему-то открывается неактивной. Как её программно активировать?
...
Рейтинг: 0 / 0
23.05.2013, 23:17
    #38271027
Rostislav D. Kudryashov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная активация Top-level формы
А как ты узнаёшь, что форма "неактивна"? Она даёт об этом объявление?
...
Рейтинг: 0 / 0
23.05.2013, 23:18
    #38271028
Rostislav D. Kudryashov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная активация Top-level формы
А как ты узнаёшь, что форма "неактивна"? Она даёт об этом объявление?
Но, вроде бы, есть способ заставить любой объект "пережить" необходимое тебе событие. Например,
...
Рейтинг: 0 / 0
23.05.2013, 23:19
    #38271030
Rostislav D. Kudryashov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная активация Top-level формы
А как ты узнаёшь, что форма "неактивна"? Она даёт об этом объявление?
Но, вроде бы, есть способ заставить любой объект "пережить" необходимое тебе событие. Например,
RAISEEVENT (TopForm, 'GotFocus')
...
Рейтинг: 0 / 0
24.05.2013, 08:04
    #38271193
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная активация Top-level формы
Rostislav D. KudryashovА как ты узнаёшь, что форма "неактивна"? Она даёт об этом объявление?

Вообще-то в Windows визуально видно, активно окно или нет
...
Рейтинг: 0 / 0
24.05.2013, 08:47
    #38271230
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная активация Top-level формы
Rostislav D. KudryashovА как ты узнаёшь, что форма "неактивна"? Она даёт об этом объявление?
Но, вроде бы, есть способ заставить любой объект "пережить" необходимое тебе событие. Например,
RAISEEVENT (TopForm, 'GotFocus')

RAISEEVENT не помог - форма по-прежнему неактивна.
...
Рейтинг: 0 / 0
24.05.2013, 10:20
    #38271405
pioner-v
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная активация Top-level формы
9IKOB,

чтобы не заниматься гаданием, не лучше ли приложить
пример формы показывающий описываемую проблему?
И Config, если используется...
...
Рейтинг: 0 / 0
24.05.2013, 10:59
    #38271510
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная активация Top-level формы
pioner-v9IKOB,

чтобы не заниматься гаданием, не лучше ли приложить
пример формы показывающий описываемую проблему?
И Config, если используется...

У меня в стартовом prg-шнике перед началом выполнения ряда действий с таблицами создаётся окно wLoad, в котором говорится, что идёт загрузка:

Код: sql
1.
2.
3.
DEFINE WINDOW wLoad AT 20, 30 SIZE 3, 35 STYLE 'B' TITLE "Загрузка" FONT 'Arial', 14 NOCLOSE FLOAT NOGROW FILL FILE Load.bmp' IN DESKTOP
ACTIVATE WINDOW wLoad
? ''



После выполнения всех действий с таблицами это окно закрывалось и запускалась главная Top-level форма (она и была неактивной):

Код: sql
1.
2.
3.
4.
DEACTIVATE WINDOW wLoad
RELEASE WINDOWS wLoad
DO FORM frmMain.scx NAME frmMain LINKED
READ EVENTS



Я поставил строки с деактивацией и закрытием окна перед запуском формы, и теперь она запускается активной! Проблема решена!

P.S. Кстати, в процессе выяснил, что RAISEEVENT() только выполняет код родного события формы, то есть при RAISEEVENT (TopForm, 'Release') выполнится код, содержащийся в событии 'Release', но сама форма не закроется.
...
Рейтинг: 0 / 0
24.05.2013, 11:12
    #38271535
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная активация Top-level формы
Небольшие поправки к предыдущему посту:

1) В коде
Код: sql
1.
DEFINE WINDOW wLoad AT 20, 30 SIZE 3, 35 STYLE 'B' TITLE "Загрузка" FONT 'Arial', 14 NOCLOSE FLOAT NOGROW FILL FILE 'Load.bmp' IN DESKTOP

пропущена кавычка перед Load.bmp.

2) Строки кода с закрытием окна я поставил после строки DO FORM frmMain.scx и перед READ EVENTS
...
Рейтинг: 0 / 0
24.05.2013, 16:48
    #38272577
Reese
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная активация Top-level формы
Попробуйте так

DECLARE INTEGER SetForegroundWindow IN user32 INTEGER hwnd

SetForegroundWindow(thisform.hwnd)
...
Рейтинг: 0 / 0
27.05.2013, 08:02
    #38274174
9IKOB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программная активация Top-level формы
ReeseПопробуйте так

DECLARE INTEGER SetForegroundWindow IN user32 INTEGER hwnd

SetForegroundWindow(thisform.hwnd)

Как я писал выше, проблема уже решилась. Ваш способ попробую, если мой в следующий раз не поможет.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Программная активация Top-level формы / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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