Аватар для shmurva
0 / 0 / 0
Регистрация: 26.02.2009
Сообщений: 8

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

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

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

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

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

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

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

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

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

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

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

(Спасибо)

-----
P.S. Извините за длинное сообщение.. Если где-то выразился не корректно или неправильно - пожалуйста поправьте
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.02.2009, 15:52
Ответы с готовыми решениями:

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

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

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

5
 Аватар для shmurva
0 / 0 / 0
Регистрация: 26.02.2009
Сообщений: 8
28.02.2009, 21:15  [ТС]
Господа, неужели ни у кого нет мыслей по этому вопросу?

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

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

(Спасибо)
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
02.03.2009, 05:41
Описанные методы ни чем не отличаются, кроме как кол-вом кода. Используя готовые классы, вам остается написать совсем чуток.
При использовании наследников типа Control производительность будет сильно зависеть от кол-ва элементов на форме. Проводя отрисовку вручную увеличиваете нагрузку на свою голову. Вибирать вам
0
 Аватар для shmurva
0 / 0 / 0
Регистрация: 26.02.2009
Сообщений: 8
08.03.2009, 19:59  [ТС]
Наверное, я выберу вариант с наследованием от Control.
Приложение не требует спешки в работе.
Спасибо
0
0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 8
11.10.2010, 14:07
Уважаемый shmurva , пишу диплом как-раз на эту тему....не могли бы вы поделится достигнутыми результатами,если это вас не затруднит..с ув. Naft
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
11.10.2010, 16:16
Посмотрите на хабре, там что-то подобное.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.10.2010, 16:16
Помогаю со студенческими работами здесь

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

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

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

Как делать блок-схемы?
Сделать блок-схему кому не трудно пожалуйста, или подскажите алгоритм. program deleniena3; var a: integer; begin ReadLn(a); if...

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


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

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

Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru