Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 26.02.2009
Сообщений: 8
1

Визуальная среда разработки, блок схемы, связи. В чём делать?

27.02.2009, 15:52. Показов 3379. Ответов 5
Метки нет (Все метки)

Здравствуйте, Уважаемы Гуру!
У меня такой вопрос: в чём лучше сделать то, что мне необходимо?

Мне нужно 2D поле, в котором я смогу создавать прямоугольники и соединять их линиями друг с другом. Должна быть возможность выделения прямоугольника или группы прямоугольников мышью, и возможность их перетаскивать. При перетаскивании соединяющая их линия должна тоже сохраняться (растягиваться). Если делать двойной щелчок мышью по прямоугольнику, то должно открываться его свойства в отдельном окне. Линию тоже нужно выделять отдельно по щелчку на ней, а по двойному щелчку - открывать окно настройки свойства.

Вот, это та цель, которую я преследую...

А нужно это для создания удобного графического интерфейса (в замен текстовому редактору в программе), позволяющего разрабатывать для программы рабочие файлы.

Суть проблемы такова:
С помощью чего это можно сделать?

Мои собственные предположения, как это можно реализовать:
Вариант 1.
Использовать компонент типа pictureBox (любой графический компонент, который имеет свою канву и позволяет рисовать на ней).
И все прямоугольники создавать внутри этого компонента, просто рисуя их стандартными операциями типа Rectangle и соединять линиями MoveTo/LineTo.
И отслеживать все операции Клика, ДвойногоКлика и другие по отношению к pictureBox.
При этом придётся постоянно:
- считывать координаты клика мыши
- рассчитывать, по какому объекту произведён клик (для этого нужно помнить координаты всех объектов. Для прямоугольников и линий - это две точки. Также нужно хранить связь линии с двумя прямоугольниками)

Весь основной код данного варианта будет собран в одну большую функцию, как мне кажется. В функцию (или несколько) одного единственного объекта pictureBox. (Почему единственного? Потому что все мои прямоугольнички будут "якобы" живые, ведь они будут просто нарисованы на канве)
С описанием первого варианта я закончил.

Вариант 2.
Выложить на форму объект типа ScrollBar, который будет работать как контейнер с прокрутками. Написать в C# несколько динамических методов.
И создавать желаемые прямоугольники как динамические объекты в программе. Линии тоже сделать динамическими объектами. И цеплять к их свойствам динамические функции.
В таком случае я избавлюсь от необходимости:
- самому прорисовывать объекты(прямоугольники), т.к. система сделает это за меня.
- не нужно будет "вручную" проверять координаты на поле, т.к. это сделает система. Она определит координаты и вызовет прикреплённую к объекту динамическую функцию.
Конец варианта 2.

1. Уважаемые гуру, скажите, какие есть подводные камни в этой затее и чем отличаются описанные методы?
2. Есть ли другой способ, кроме тех что описал я?
3. Какой метод более предпочтителен?
4. Какой метод более производителен (а нужна ли мне производительность?)
5. Может какой-то из методов имеет в дальнейшем ограничение на "развитие вперёд" ?

(Спасибо)

-----
P.S. Извините за длинное сообщение.. Если где-то выразился не корректно или неправильно - пожалуйста поправьте
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2009, 15:52
Ответы с готовыми решениями:

Среда разработки VB. Можно ли закомментировать текстовый блок?
Можно закомментировать(снять комментарии) с выделенного текстового блока? Форматировать выделенный...

Среда разработки на С++ чтоб можно было формы делать и "визуально программировать"
а есть ли среда разработки на С++ чтоб можно было формы делать и "визуально программировать",...

Визуальная среда программирования
Визуальная среда программирование в делфи. Решение задачи по теме: №1 «Ограниченные и...

Визуальная среда. Свойства формы.
Нужна помощь. Проблема в следующем: хотелось бы сделать невозможным изменение размеров формы, но,...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
5
0 / 0 / 0
Регистрация: 26.02.2009
Сообщений: 8
28.02.2009, 21:15  [ТС] 2
Господа, неужели ни у кого нет мыслей по этому вопросу?

Выскажите любое своё мнение, ведь это форум, нужно размышлять... Хотя бы предположения!

В пользу описанного "варианта 2" меня склоняет то, что мне придётся работать с текстом в прямоугольничке. А для текста проще использовать готовые компоненты среды NET типа TextBox. Я не могу себе представить, как я смогу реализовать тот же объект TextBox работая по "варианту 1"
Как Вы думаете?

(Спасибо)
0
1922 / 427 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
02.03.2009, 05:41 3
Описанные методы ни чем не отличаются, кроме как кол-вом кода. Используя готовые классы, вам остается написать совсем чуток.
При использовании наследников типа Control производительность будет сильно зависеть от кол-ва элементов на форме. Проводя отрисовку вручную увеличиваете нагрузку на свою голову. Вибирать вам
0
0 / 0 / 0
Регистрация: 26.02.2009
Сообщений: 8
08.03.2009, 19:59  [ТС] 4
Наверное, я выберу вариант с наследованием от Control.
Приложение не требует спешки в работе.
Спасибо
0
0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 8
11.10.2010, 14:07 5
Уважаемый shmurva , пишу диплом как-раз на эту тему....не могли бы вы поделится достигнутыми результатами,если это вас не затруднит..с ув. Naft
0
Почетный модератор
Эксперт .NET
8692 / 3644 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
11.10.2010, 16:16 6
Посмотрите на хабре, там что-то подобное.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2010, 16:16

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Визуальная среда для Java, EJB
Люди, привет! Помогите выбрать среду для создания небольшого проекта J2EE (EJB, JMS, JSP,...

Визуальная среда создания 3D объектов, подключаемая к С++ Builder!
Здравствуйте! Прошу помочь мне в выборе визуальной среды, в которой можно смоделировать,...

Как делать блок-схемы?
Сделать блок-схему кому не трудно пожалуйста, или подскажите алгоритм. program deleniena3; var...

Как делать блок-схемы?
Ребят пожалуйста помогите создать блок схему program z6; { Кол-во букв "а" в тексте. } uses...

Визуальная среда Delphi. Построение треугольника/описание окружности; работа с массивом.
Вот, собственно, условия задач: 1) Построить треугольник по координатам его вершин и описать около...

Как делать (создать) блок схемы к структурам?
http://www.pntd.ru/19.701.htm


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.