11.08.2003, 10:58 | #1 |
Участник
|
Работа с Image и Picture Box
Люди, очень нужна ваша помощь!
Необходимо организовать что-то вроде Канвы. Планируется выводить картинку через Image или Picture Box (что лучше пока не знаю). Потом, когда пользователь пишет в какой-нибудь эдит координаты или просто кликает мышкой в нужное место картинки, на этом самом месте возникает жирная точка, а координаты запоминаются. Или вместо точки Option Button создавать и ставить поверх картинки по указанным координатам, но это, кажется, совсем нереально. Подскажите как это сделать. |
|
11.08.2003, 11:16 | #2 |
Участник
|
К сожалению, в Navision получить координаты места, где пользователь кликнул мышкой невозможно.
Программисты российского офиса Navision предложили свой вариант - настройку Extended с "Меню процессов" . Т.е. картинка с кучей CommandButton в определенных местах, и натянутым на них PictureBox. |
|
11.08.2003, 11:33 | #3 |
Участник
|
Скриншот одного из меню процессов.
|
|
11.08.2003, 11:36 | #4 |
Участник
|
Ну Меню Процессов - неплохая задумка, хотя тоже не без глюком (например, на экран с разрешением 800 на 600 их картинка просто не влезает, а прокрутки никакой нет). Но мне именно кликанье мышкой не так уж критично. Пусть пользователь координаты просто вводит. Проблема в том как точку нарисовать.
К тому же в меню процессов все заранее известно, а мне в run-time надо все делать |
|
11.08.2003, 11:37 | #5 |
Участник
|
А так это выглядит в дизайнере (фокус на Picture Box).
|
|
11.08.2003, 11:43 | #6 |
Участник
|
Создать объект все равно не получиться. Хотя есть вариант такой : создать, к примеру, кнопку, затем присвоить ей имя и сделать невидимой. После чего написать функцию, которая по определенному событию будет менять видимость этой кнопки и положение ее на экране (свойства контрола VISIBLE, XPos и YPos соответственно).
Однако, все равно остается проблема с выяснением координат того места, где пользователь соизволил нажать клавишу мышки. Правда, есть мысль: поскольку 3.60 поддерживает перехват событий от Automation, то можно попробовать перехватить событие щелчек мышки Windows. (прошу камнями не закидывать, если сморозил глупость ). |
|
11.08.2003, 12:14 | #7 |
Участник
|
Спасибо конечно за помощь, Rungart, но ...
В дизайнер я вполне в состоянии зайти, так что скриншот можно было не присылать Через Automation поймать системное сообщение (как например нажатие клавиши мыши), на сколько я понимаю, никак не получится.. А на счет невидимых изначально кнопок - это, конечно, вариант. Ноя повторяю, что мне все надо делать в run-time. Не знаю я сколько таких кнопок надо будет заранее накидать... Можно в принципе штук 30 кинуть и успокоиться. Но это не очень рациональное решение. А с кликом мышкой - я же написала, что это не обязательно, можно и координатами вводить. Но все равно спасибо. |
|
11.08.2003, 13:33 | #8 |
Участник
|
Nataly, мне кажется, при такой постановке вопроса вам вряд ли кто поможет. Вы достаточно жестко поставили задачу, которая практически не решаема на данной технологической платформе. Если вы сформулируете ее на более общем уровне, без привязки к элементам технической реализации, то вариантов решения будет больше.
NA - это не универсальная среда разработки. Поэтому любую задачу нужно либо приводить к терминам NA (со всеми ограничениями), либо реализовывать ее решение во внешнем приложении. Например, в вашем случае визуализацию и обработку данных (проставление точек) можно осуществлять во внешнем приложении. А NA будет передавать в него данные для обработки и получать результаты. Связь между ними можно организовать через COM-интерфейс. |
|
11.08.2003, 15:55 | #9 |
Участник
|
Спасибо, Grizzly!
Вашего ответа мне достаточно, что бы понять ситуацию. Буду пробовать через COM-объекты. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Работа филиалов | 5 | |||
Text box | 3 | |||
где и когда используются list box и report frame ? | 3 | |||
работа с COM в C/AL | 0 | |||
Attain 3.60 Picture Box и Image в формах | 1 |
|