AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.08.2003, 10:58   #1  
Nataly is offline
Nataly
Участник
 
101 / 10 (1) +
Регистрация: 17.06.2003
Адрес: Екатеринбург
Работа с Image и Picture Box
Люди, очень нужна ваша помощь!

Необходимо организовать что-то вроде Канвы. Планируется выводить картинку через Image или Picture Box (что лучше пока не знаю). Потом, когда пользователь пишет в какой-нибудь эдит координаты или просто кликает мышкой в нужное место картинки, на этом самом месте возникает жирная точка, а координаты запоминаются. Или вместо точки Option Button создавать и ставить поверх картинки по указанным координатам, но это, кажется, совсем нереально.

Подскажите как это сделать.
Старый 11.08.2003, 11:16   #2  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Angry
К сожалению, в Navision получить координаты места, где пользователь кликнул мышкой невозможно.
Программисты российского офиса Navision предложили свой вариант - настройку Extended с "Меню процессов" .
Т.е. картинка с кучей CommandButton в определенных местах, и натянутым на них PictureBox.
Старый 11.08.2003, 11:33   #3  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Скриншот одного из меню процессов.
Миниатюры
Нажмите на изображение для увеличения
Название: capture.jpg
Просмотров: 555
Размер:	124.8 Кб
ID:	235  
Старый 11.08.2003, 11:36   #4  
Nataly is offline
Nataly
Участник
 
101 / 10 (1) +
Регистрация: 17.06.2003
Адрес: Екатеринбург
Ну Меню Процессов - неплохая задумка, хотя тоже не без глюком (например, на экран с разрешением 800 на 600 их картинка просто не влезает, а прокрутки никакой нет). Но мне именно кликанье мышкой не так уж критично. Пусть пользователь координаты просто вводит. Проблема в том как точку нарисовать.

К тому же в меню процессов все заранее известно, а мне в run-time надо все делать
Старый 11.08.2003, 11:37   #5  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
А так это выглядит в дизайнере (фокус на Picture Box).
Миниатюры
Нажмите на изображение для увеличения
Название: capture2.jpg
Просмотров: 505
Размер:	152.0 Кб
ID:	236  
Старый 11.08.2003, 11:43   #6  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Создать объект все равно не получиться. Хотя есть вариант такой : создать, к примеру, кнопку, затем присвоить ей имя и сделать невидимой. После чего написать функцию, которая по определенному событию будет менять видимость этой кнопки и положение ее на экране (свойства контрола VISIBLE, XPos и YPos соответственно).

Однако, все равно остается проблема с выяснением координат того места, где пользователь соизволил нажать клавишу мышки.
Правда, есть мысль: поскольку 3.60 поддерживает перехват событий от Automation, то можно попробовать перехватить событие щелчек мышки Windows. (прошу камнями не закидывать, если сморозил глупость ).
Старый 11.08.2003, 12:14   #7  
Nataly is offline
Nataly
Участник
 
101 / 10 (1) +
Регистрация: 17.06.2003
Адрес: Екатеринбург
Спасибо конечно за помощь, Rungart, но ...
В дизайнер я вполне в состоянии зайти, так что скриншот можно было не присылать

Через Automation поймать системное сообщение (как например нажатие клавиши мыши), на сколько я понимаю, никак не получится..

А на счет невидимых изначально кнопок - это, конечно, вариант. Ноя повторяю, что мне все надо делать в run-time. Не знаю я сколько таких кнопок надо будет заранее накидать... Можно в принципе штук 30 кинуть и успокоиться. Но это не очень рациональное решение.

А с кликом мышкой - я же написала, что это не обязательно, можно и координатами вводить.

Но все равно спасибо.
Старый 11.08.2003, 13:33   #8  
Grizzly is offline
Grizzly
Участник
 
85 / 10 (1) +
Регистрация: 30.01.2003
Адрес: Омск
Nataly, мне кажется, при такой постановке вопроса вам вряд ли кто поможет. Вы достаточно жестко поставили задачу, которая практически не решаема на данной технологической платформе. Если вы сформулируете ее на более общем уровне, без привязки к элементам технической реализации, то вариантов решения будет больше.

NA - это не универсальная среда разработки. Поэтому любую задачу нужно либо приводить к терминам NA (со всеми ограничениями), либо реализовывать ее решение во внешнем приложении. Например, в вашем случае визуализацию и обработку данных (проставление точек) можно осуществлять во внешнем приложении. А NA будет передавать в него данные для обработки и получать результаты. Связь между ними можно организовать через COM-интерфейс.
Старый 11.08.2003, 15:55   #9  
Nataly is offline
Nataly
Участник
 
101 / 10 (1) +
Регистрация: 17.06.2003
Адрес: Екатеринбург
Спасибо, Grizzly!
Вашего ответа мне достаточно, что бы понять ситуацию. Буду пробовать через COM-объекты.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Работа филиалов ShadowFromXZone NAV: Функционал 5 11.07.2005 17:22
Text box Pirat NAV: Функционал 3 05.03.2005 06:37
где и когда используются list box и report frame ? Vladimir74 NAV: Программирование 3 13.07.2004 14:46
работа с COM в C/AL Alex_V NAV: Программирование 0 30.05.2003 13:43
Attain 3.60 Picture Box и Image в формах Nik NAV: Программирование 1 03.04.2003 14:49

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:03.