![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Организовать работу циклов и условий в редакторе блок-схем [D7, XP]
Василь © (2010-05-13 10:30:00)Здравствуйте! Помогите хотя бы советов как показать циклы и условия в программе редактор блок-схем. Я использую для вывода блоков массив TImage, сами блоки рисую на канве. Для перемещения блоков использую драг&дроп отсюда http://www.delphimaster.ru/articles/imgmoving.html.Надо чтобы например, пользователь "взял" блок и "кинул" его например на блок "цикл For" и этот блок отображался бы теперь в цикле. После этого надо сформировать Паскаль-код по блок схеме (но я это сам). Заранее спасибо!
Василь (2010-05-17 11:59:00) [1]а как сделать так чтобы при драг&дроп, если блок1 попадает в область блок2, то как прорисовать блок1 в области блок2 в определенной позиции блока2 ?
12 (2010-05-13 14:42:00) [2]Блок должен иметь процедуру прорисовки, в переданной ему области
Блок имеет свойство вмещать блок
Блок должен прорисовывать все вмещенные в него блоки, вызвав их процедуру, передав место под это дело внутри себя
Блок должен уметь отцепить любой вмещенный в него блок.
место под это дело внутри себянадо вычислить. Следовательно, надо чтоб блок знал свои габариты. Следовательно, габариты блока будут вычисляться по габаритам всех вмещенных в него блоков.
RWolf (2010-05-13 14:41:00) [3]По стандарту блоки соединяются стрелками.
Василь (2010-05-13 14:28:00) [4]
> Или ты вообще не знаешь как отображаются циклы и условия?
как должно выглядеть я знаю, блок-схемы рисовал в свое время)) а вот
> if ПользовательКинулБлок1наБлок2 and Блок2=ЦиклFor then
> ОтобразитьБлок1внутриБлока2;
Отобразить как? Прорисовать Блок1 в канве Блока2? Или как то еще? И как тогда текст менять в блоке если он уже прорисован на канве другого? Нужно еще чтобы пользователь мог "вытянуть" Блок1 назад!
RWolf (2010-05-13 11:18:00) [5]вопрос, наверно, в выборе контейнера, который поддерживает перетаскивание на него.
TPanel, например.
oldman (2010-05-13 11:08:00) [6]
> Надо чтобы например, пользователь "взял" блок и "кинул"
> его например на блок "цикл For" и этот блок отображался
> бы теперь в цикле.
И в чем проблема-то?
if ПользовательКинулБлок1наБлок2 and Блок2=ЦиклFor then
ОтобразитьБлок1внутриБлока2;
Или ты вообще не знаешь как отображаются циклы и условия?