:: Visual Foxpro, Foxpro for DOS
Функция определения на каком объекте окна находится фокус
novik
Автор

Сообщений: 75
Дата регистрации: 30.10.2009
Уважаемые знатоки!
Вроде вопрос примитивный, но я на нем заткнулся.

Подскажите, как можно определить на каком из объектов окна (vfp9)
в данный момент находится фокус.

Либо определить находится ли фокус на конкретном объекте окна в данный момент.
=============================================
С уважением!



Исправлено 1 раз(а). Последнее : novik, 07.06.22 14:35
Ratings: 0 negative/0 positive
Re: Функция определения на коком объекте окна находится фокус
PaulWist

Сообщений: 14698
Дата регистрации: 01.04.2004
Object.ActiveControl

И далее раскручивать по иерархии.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Функция определения на каком объекте окна находится фокус
novik
Автор

Сообщений: 75
Дата регистрации: 30.10.2009
Большое человеческое Спасибо!)
Ratings: 0 negative/0 positive
Re: Функция определения на коком объекте окна находится фокус
akvvohinc

Сообщений: 4370
Откуда: Москва
Дата регистрации: 11.11.2008
Учитывая вложенность объектов формы друг в друга, вопрос "на каком из объектов окна?" неоднозначен, так как про любой вложенный объект можно сказать, что он находится одновременно на (или во) всех родительских объектах.

Примерно то же можно сказать и о втором вопросе - вас интересует ближайший родитель объекта или любой родитель в цепочке?

PaulWist
И далее раскручивать по иерархии.
Необходимость "раскрутки" зависит от того, какую конкретно цель преследует ТС.
Например, просто сравнить две объектные ссылки для ответа на вопрос "Тот ли это объект?" можно и без "раскрутки".



Исправлено 1 раз(а). Последнее : akvvohinc, 07.06.22 17:07
Ratings: 0 negative/0 positive
Re: Функция определения на каком объекте окна находится фокус
of63

Сообщений: 25638
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
() Где-то есть штатная функция, которая возвращает (указатель на) обьект (или имя его, не помню), на котором находится указатель мыши (или в координате формы, или экрана фокса, или ... )
К тому что в VFP есть функции, которые крайне редко нужны, но ребята VFP-фоксисты, пока их не разогнали, о многом позаботились )
Ratings: 0 negative/0 positive
Re: Функция определения на каком объекте окна находится фокус
ssa

Сообщений: 13056
Откуда: Москва
Дата регистрации: 23.03.2005
of63
() Где-то есть штатная функция, которая возвращает (указатель на) обьект (или имя его, не помню), на котором находится указатель мыши (или в координате формы, или экрана фокса, или ... )
ФОКУС и УКАЗАТЕЛЬ МЫШИ - несколько разные вещи.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Функция определения на каком объекте окна находится фокус
of63

Сообщений: 25638
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
да, я поэтому в скобках

фокус - тоже неординарное понятие. В активной форме можно получить имя активного видеоэлемента (или сам обьект, не суть), а в несфокусированной форме ? Я не пробовал посмотреть (не надо было, но "теоретический", точнее, рарзработчиков решение, вопрос интересен, в ковычках ) )



Исправлено 2 раз(а). Последнее : of63, 07.06.22 18:34
Ratings: 0 negative/0 positive
Re: Функция определения на каком объекте окна находится фокус
akvvohinc

Сообщений: 4370
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
а в несфокусированной форме ?
В "несфокусированной форме" фокуса нет (ссылка на form.activecontrol приведёт к ошибке "not an object").

Ты, видимо, имеешь в виду объект, который был активным в момент деактивации формы, и который окажется в фокусе при её реактивации?
Наверно, для этого придется в событие Lostfocus всех объектов (их классов) прописывать сохранение ссылки на себя типа thisform.lastactive = this. Тогда из другой формы можно будет узнать, где остался "фокус" в первой форме - form1.lastactive.
Ratings: 0 negative/0 positive
Re: Функция определения на каком объекте окна находится фокус
of63

Сообщений: 25638
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Наверно, для этого придется в событие Lostfocus всех объектов (их классов) прописывать сохранение ссылки
да, средства есть, но "хотелось бы", чтобы это было сейчас, без самопальной кодировки...
Все это не сильно важно для рабочих задач, для "красоты" только...
() lastactive - про твою систему именований спс. Это важно, как назвать



Исправлено 1 раз(а). Последнее : of63, 13.06.22 20:09
Ratings: 0 negative/0 positive
Re: Функция определения на каком объекте окна находится фокус
ser61

Сообщений: 9
Дата регистрации: 19.04.2016
Вопрос -зачем это знать?
Как правило при работе с БД форма имеет 2 режима 1-ввод новых данных, 2-редакция ранее введенных данных. При вводе на форме только всегда активен один элемент и на нем находится фокус. И далее заполнил переход на следующий. В режиме редакции при активизации формы все названия элемента (Label) первоначально находятся в режиме ".Border.Style". Клик мышкой - и элемент становится активным - фокус на нем. закончил редакцию - исходный вариант. Возможно кажется сложно, но когда порядка 15-20 элементов - все упрощается. Главное оператору объяснить оно само туда не перескочит.
Ratings: 0 negative/0 positive
Re: Функция определения на каком объекте окна находится фокус
of63

Сообщений: 25638
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
() ну ты даешь )

()() идиот, мтк

> Возможно кажется сложно, но когда порядка 15-20 элементов - все упрощается.
Но боротьбу никто не отменял!

Главное оператору объяснить

не будьте такими, обьясняйте (эх, это ген всегда возможно)...
() Кому тяжело это обьяьснять - есть физика, всякие ваши "планки", шредингеры, кому что )



Исправлено 3 раз(а). Последнее : of63, 13.06.22 22:44
Ratings: 0 negative/0 positive
Re: Функция определения на каком объекте окна находится фокус
of63

Сообщений: 25638
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
по поводу ур. Шредингера (дифур первого порядка), и сравните, с "пространством Фока", - тут же возникло это понятие!

() В КМ, это есть "формальная" проц "квантования" ( в Пескин и Шредер это хор изложено)

шухеру нагнал. ребята, вы должны учиться (этой КМ), Пу обеспечит, бро... идите в МФТИ. Кто-то вы/иы должны содержать, хотя бы оружие в рабочем виде



Исправлено 2 раз(а). Последнее : of63, 13.06.22 22:53
Ratings: 0 negative/0 positive
Re: Функция определения на каком объекте окна находится фокус
PaulWist

Сообщений: 14698
Дата регистрации: 01.04.2004
ser61
Вопрос -зачем это знать?
Как правило при работе с БД форма имеет 2 режима 1-ввод новых данных, 2-редакция ранее введенных данных. При вводе на форме только всегда активен один элемент и на нем находится фокус. И далее заполнил переход на следующий. В режиме редакции при активизации формы все названия элемента (Label) первоначально находятся в режиме ".Border.Style". Клик мышкой - и элемент становится активным - фокус на нем. закончил редакцию - исходный вариант. Возможно кажется сложно, но когда порядка 15-20 элементов - все упрощается. Главное оператору объяснить оно само туда не перескочит.

Надеюсь данный подход реализуется исключительно для визуализации. ;)


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 22 (Гостей: 22)

© 2000-2024 Fox Club 
Яндекс.Метрика