powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Pixel => Foxel
13 сообщений из 13, страница 1 из 1
Pixel => Foxel
    #33116832
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как узнать координаты объекта в тех величинах, которые возвращает: MCol(), MRow()
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33116902
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто мешает вернуть сразу Pixels!?
MCOL(cWindowName , 3). И тоже самое в MROW()
С уважением, Алексей.
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33117017
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, если я неправильно сформулировал.

Мне нужно под объектом, при нажатии определенного сочетания клавиш выдать ваыпадающее меню.
А оно координаты принимает только в Фокселях (колонки и строки). Я же имею только Пиксели ... (This.Top, This.Left)
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33117034
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужно под объектом, при нажатии определенного сочетания клавиш выдать ваыпадающее меню.
В этом деле очень важно найти подходящее сочитание клавиш. Вот левая кнопка мыши подходит неплохо. Там еще в методе кординаты клика указаны.
Скока трудностей сразу пропадет ?
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33117043
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ох ох кнопка конечно правая а не левая
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33117127
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кнопка вообще на клавиатуре !! :-))

Ну привыкли юзвери в досе работать !!
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33117209
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Использовать FontMetric() для определения средней ширины и высоты шрифта (хотя, точность не особо высокая)

2) Использовать команду MOUSE для перевода указателя мыши в нужное положение (в пикселах), а потом MROW() и MCOL(). Затем можно вернуть указатель мыши в исходное положение.

Код: plaintext
1.
2.
3.
4.
5.
6.
lnRow = MROW()
lnCol = MCOL()

MOUSE AT  10 , 10  PIXELS
?MROW(), MCOL()

MOUSE AT m.lnRow, m.lnCol

Хотя, что-то этот MOUSE - глючит. Надо принудительно ставить задержку после MOUSE для корректного перемещения (Inkey(0.1))
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33117402
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maltsev Max Я же имею только Пиксели ... (This.Top, This.Left)
Если я правильно понял - нужно просто перевести пиксели в фоксели?
Есть же какие-то коэффициенты перевода - не помню, где видел. А вот попробовал сейчас - и увидел такую вещь - что выходит, что фоксели по горизонтали и по вертикали по-разному вычисляются?
Я кинул метки на форму - и получмл (через MCOL(),MROW()), примерно конечно:
по горизонтали 100 пикселов = 20 фокселов
по вертикали 300 пикселов = 20 фокселов
Даже отсюда можно вычислить с точностью в пределах экрана подходящей.
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33117419
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 фоксель - это размер одной буквы. Естесственно, что ширина буквы меньше ее высоты. Это наследство DOS-версии, когда размер букв был одинаковым для любых шрифтов.

Соответсвенно, для перевода из пикселей в фоксели надо использовать среднюю ширину и высоту текущего шрифта. А это как раз и дает функция FontMetric().
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33117442
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Crispyпо горизонтали 100 пикселов = 20 фокселов
по вертикали 300 пикселов = 20 фокселов

На сколько я знаю, количество пикселей зависит от разрешения экрана ...
Но в данном случае, наверо, этим можно пренебречь....
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33118519
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Maltsev Max!

Если фокс более-менее свежий, то рекомендую посмотреть пример New Style
Toolbar (в сэмплах) - там умудряются попап-меню даже под кнопку задоканного
тулбара корректно подставить! Можно конечно сказать что они это делают там
через одно место, но главное что это работает :)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33118601
po2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
po2
Гость
Для формы все просто. В момент вывода меню установи .ScaleMode = 0 , считай в переменные координаты нужного объекта и тут же верни .ScaleMode = 3 . Кроме упомянутого решения из New Style
Toolbar
посмотри на обсуждение по ссылке: http://forum.foxclub.ru/read.php?f=5&i=71527&t=71527 , т.к. в большинстве случаев меню правильнее позиционировать относительно Screen'а(TopLevel Form), иначе размер Popup'а будет ограничиваться размерами формы.
...
Рейтинг: 0 / 0
Pixel => Foxel
    #33119057
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
Идею понял. Буду разбираться ...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Pixel => Foxel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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