Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2012, 22:36   #1
Blame
Пользователь
 
Регистрация: 24.12.2011
Сообщений: 70
По умолчанию хочу создать редактор для построения блок-схем.

Ребят, добрый день! Нужна Ваша помощь!

У меня по предмету "Офисные технологии" свободная тема лабы.
Я захотела сделать что-нибудь полу-творческое, придумала себе задание создать редактор, который строит блок-схемы алгоритмов.

Идея очень простая. На форме есть кнопки с иконками типовых элементов блок-схем (Блок вычислений, блок ввода-вывода и .т.д.). По нажатию на кнопку с изображением того или иного элемента создается динамически элемент CommandButton с соответствующим изображением элемента.
Добавить программно кнопку с иконкой,- я сделала. Но есть то,что я пока не знаю, как реализовать. Очень прошу помочь мне.

1) Блоков может быть несколько. Сейчас у меня создается кнопка с фиксированным именем CommandButton1. Но таких элементов может быть сколь угодно. Можно ли избавиться от привязки к имени компоненты? То есть по нажатию кнопки, чтобы создавались элементы с произвольными именами, но чтобы потом в коде можно было обратить к созданному элементу.

2) Самый для меня важный.. Можно ли перетаскивать созданные элементы?То есть, например, можно ли, удерживая клавишу мыши, передвигать созданные элементы, чтобы в итоге могла получиться реальная блок-схема? Если да, то подскажите, пожалуйста, как.

3) Можно ли изменять контент созданных элементов? То есть я, например, создала элемент "начало-конец", я хочу подписать на нем текст "Начало"...

Файл приложила. При запуске необходимо будет изменить путь к рисунку, а можно вообще удалить эту строку, сейчас это не самое важное...

Буду очень благодарна любым вариантам,идеям, полезным ссылочкам и подсказкам!!

СПАСИБО!
Вложения
Тип файла: zip picture.zip (23.8 Кб, 16 просмотров)
Peace!
Blame вне форума Ответить с цитированием
Старый 08.10.2012, 23:05   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

1.Можно.Создаете динамичную коллекцию контролов,свойство Tag для идентификации нужного контрола.
2.можно,подписываете коллекцию на MouseDown,MouseMove,MouseUp и таскаете их.
3.Можно.В MouseUp ловите правую кн.мышки и по Tag ищите контрол,меняете,что хотите.

Это коротко.
Если серьезно,то вы очень сложную тему выбрали.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 08.10.2012, 23:23   #3
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

2. Как-то делал перетаскивание контролов, даже с "прилипанием". Удивительно просто получилось, чистая арифметика
http://www.cyberforum.ru/vba/thread371521.html
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 08.10.2012, 23:27   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Что могу сказать... я бы не взялся делать такое, с рисованием на форме.
Очень много сложного кода, проблемы с перетаскиванием, графикой, и т.д. и т.п.
У меня большой опыт написания макросов - но я вряд ли бы осилил подобный проект с рисованием на форме VBA...

Рисуйте компоненты блок-схемы на листе Excel - это намного удобнее будет (как в плане кода, так и касательно удобства работы с блок-схемой - перетаскивание, распечатка, добавление надписей, и т.д.)
К тому же, в Excel есть все необходимые автофигуры для этих целей.
Автофигурам можно назначить макросы - это позволит выполнять действия при нажатии на них.



И ещё - читата по ссылке от Казанского:
Цитата:
Сообщение от mc-black
Наталкиваю на мысль: чтобы не изобретать заново Microsoft Visio, просто используйте эту программу в связке с языком VBA, встроенным в неё. Все объекты блок-схем там есть. Вам надо разрешить пользователю выбирать объекты из библиотеки с элементами блок-схем и стрелками, реализовать проверку правильности соединений элементов между собой. Скажем, проверка схемы на отсутствие "висящих в воздухе" стрелок и блоков, на направление и места соединения стрелок с фигурами, на обязательное наличие блоков "начало" и "конец".
Microsoft Visio для этой задачи подходит куда больше...

Последний раз редактировалось EducatedFool; 08.10.2012 в 23:31.
EducatedFool вне форума Ответить с цитированием
Старый 16.10.2012, 19:29   #5
Blame
Пользователь
 
Регистрация: 24.12.2011
Сообщений: 70
По умолчанию

Спасибо большое за ответы!!!

Отдельное спасибо EducatedFool! Великолепная идея использовать автофигуры!...это же гениально ) и как я только не додумалась
Я теперь поняла, что это не такая уж и простая тема! Но я не отступлю) Заодно и изучу элементы блок-схем по ГОСТам ГОСТ 19.701-90, ГОСТ 19.002-80,ГОСТ 19.003-80,- пригодится, когда буду диплом оформлять ))
Peace!
Blame вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для блок-схем. tinton Помощь студентам 3 04.05.2012 08:27
Программа для построения блок-схем? ivan.tiran Помощь студентам 1 05.04.2012 16:36
прога для блок схем Kravec Помощь студентам 1 12.06.2009 06:58
Программа для Блок-Схем OrdJONY Свободное общение 9 18.05.2009 22:05
Редактор блок-схем... 'Loo Помощь студентам 3 16.02.2009 14:36