Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
18.09.2009, 23:44
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
Ковырялся тут с рисованием в обычной форме - всё нормально, за мышью тянется пунктир выделения. Остриё мыши совпадает с нижним краем пунктира. Так и должно быть. Но стоит форму про- Scroll 'лить и появляется погрешность-разрыв между остриём мыши и нижним краем пунктира. Как Вы уже догадались - погрешность-разрыв равна величине Scroll. Это видно и в рисунках. При горизонтальном Scroll'е появляется точно такой же горизонтальный эффект. Как победить погрешность, как я понял через св-ва формы величина скроллов не определяется. Т.е., надо если Scroll был, вводить поправку на величину скролла. Т.е., нужно, чтоб координаты мыши в экране (MROW(This.Name,3), MCOL(This.Name,3)) определялись не в истинную величину окна (This.Name), а в видимую величину окна... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.09.2009, 00:01
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
Кстати, если форму про- Scroll 'ить обратно - разрыв между остриём выделяющего курсора и краем пунктира пропадает, словно и не было. Ну это тоже понятно, я думаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.09.2009, 14:49
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
Валентин Н.Карелиннадо если Scroll был, вводить поправку на величину скролла. Для 9-ки примерно так: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.09.2009, 16:22
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
Валентин Н.Карелиннадо если Scroll был, вводить поправку на величину скролла. Сама поправка даже короче: mrow(0,3)-mrow(This.Name,3) Впрочем, это уже не важно, раз есть This.ViewPortTop. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.09.2009, 19:57
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
Спасибо за ответ, GrammerPro . Вот ещё хочу ViewPortTop и ViewPortLeft поковырять. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.09.2009, 20:36
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
Валентин Н.КарелинВот ещё хочу ViewPortTop и ViewPortLeft поковырять. Конечно. Хоть This.ViewPortTop и равно mrow(0,3)-mrow(This.Name,3), но видим лучше использовать более четкий This.ViewPortTop, а координата будет: mouse_x = mrow(This.Name, 3) + This.ViewPortTop ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.09.2009, 20:51
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
Сйчас подумал - а может Вам можно забыть про скролл, и просто вместо mrow(This.Name,3) использовать mrow(0,3) ... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.09.2009, 03:05
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
GrammerProСйчас подумал - а может Вам можно забыть про скролл, и просто вместо mrow(This.Name,3) использовать mrow(0,3) ...Я бы с радостью " забыл " про Scroll, но у заказчика мониторы 800х600 (бабушки-бухгалтера). И высыпать им на экран 400-500 объектов, каждый от 45 пикселей и выше я никак не смогу без Scroll'а. Увы... Или я что-то не понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.09.2009, 09:51
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
Валентин Н.КарелинИли я что-то не понял? Или я не так выразился. :) Имел в виду, что от скролла отказываться не нужно, а борьба с описанным Вами нежелательным эффектом может свестись к замене в программе конструкции mrow(This.Name,3) на mrow(0,3). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.09.2009, 23:32
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
GrammerProборьба с описанным Вами нежелательным эффектом может свестись к замене в программе конструкции mrow(This.Name,3) на mrow(0,3).Я щя маленя отвлёкся от проблемы, поэтому чёт не понял. Предположим, моё окно расчиталось через количество объектов на 1275х990. На экран вышло 800х600+Scroll. И при прокрутке имеем неприятные моменты, описанные выше. Но только при прокрутке, хотя бы на 1 пиксель. Вернулось окно обратно - неприятные моменты исчезли. Получается, если я заменю в программе конструкцию MROW(This.Form,3) на MROW(0,3) - неприятных моментов не будет НИКОГДА , сколько бы я не крутил окно? Я правильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2009, 08:57
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
Валентин Н.КарелинПолучается, если я заменю в программе конструкцию MROW(This.Form,3) на MROW(0,3) - неприятных моментов не будет НИКОГДА , сколько бы я не крутил окно? Я правильно понял? Да, мне кажется так. Ведь похоже, что все остальные координаты и свойства Top и Left объектов не зависят от скролла, это только мышь дала слабину. But, never say NEVER... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.09.2009, 10:54
|
|||
---|---|---|---|
|
|||
Эффект при рисовании в Scrolled Form |
|||
#18+
GrammerProВедь похоже, что все остальные координаты и свойства Top и Left объектов не зависят от скролла, это только мышь дала слабину.Ясно. На днях попробую, тогда посмотрим. С налёта не хочу - что-нибудь не так сделаешь, или где-то не исправишь, и конфуз... Вообще, MROW(0,3) по логике похоже на таблетку :) ... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&mobile=1&tid=1586043]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
584ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 350ms |
total: | 1039ms |
0 / 0 |