Dilma, не знаю, писали, или нет, но очень необходимо одно свойство среды, такое как неуничтожение связи при изменении имени точки в мультиках. А то переименуешь точку и все линки этой точки сразу же потерялись, и снаружи, и внутри.
Этот топик читают: Гость
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
карма: 22 |
|
Ответов: 689
Рейтинг: 20
|
|||
про 10 точек мешающих переносу: в этой схеме code_1829.txt нужно перенести текстовое поле из контейнера 1, в контейнер 2. Для этого в контейнере 2 нужно создать соответствующее число точек, в контейнере 2 удалить.
Если бы была единая среда разработки и контейнер выполнял роль некоего элемента призваного в среде сгруппировать внутри себя элементы, такой перенос был бы только осуществлен переносом самого элемента. Да и не в переносе дело. Например, когда я подношу курсор к точке на самом элементе, я вижу ее задачу, например onMouseDown. Когда я подношу курсор к точке на контейнере - я вижу onEvent6 и этот onEvent6 связан не с элементом (onMouseDown), а с onEnent5 на группе, и только тот в свою очередь с элементом. Такие связи излишни. Матрешка неудобна. Теперь о том как я вижу единую среду разработки. В скриншотах пример. про толщину линий и различие с цветом: с помощью толщины линий можно определить главный канал, к примеру. По аналогии с жизнью: в реку впадают ручьи, ручьи узкие, река широкая. Река не бывает синяя, а ручьи зеленые. Река всегда широкая - ручьи узкие. про расширенный хаб: в скриншоте ранее я привел правильно, а вот описание дал неверное. Некорректно работает не GetDataExt, а именно HubExt. Если поднести к нему курсор, то нельзя именно на нем выбрать какую либо из точек. Хотя хаб можно поворачивать и удалять. что же касается этих двух элементов, то просьба сделать их побольше, хотя бы в 2 раза. Очень неудобно с ними работать по точкам. Маленькие они какие то, чтоли. чуть не забыл про окно отладки: есть предложения будут учтены, можно ли добавить кроме копирования еще и очистку значения и счетчика в окне |
|||
карма: 0 |
| ||
файлы: 2 | code_1829.txt [4.1KB] [488], Others.rar [55.3KB] [345] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): но очень необходимо одно свойство среды, такое как неуничтожение связи при изменении имени точки в мультикахк сожалению сделать это на даный момент не представляется возможным: в среде нет такой операции как переименование точек. oldTV писал(а): нужно перенести текстовое поле из контейнера 1не все так просто, как кажется: 1) Интерфейсный контейнер является не только группой, но(!) и родителем для всех визуальных элементов, вставленных в него 2) Контейнеры всех типов физически являются разными классами в коде программы и кодогенератор не может скажем метод элемента Edit в одной панели напрямую соединить с событием любого иного элемента в другой панели. Т.е. без промежуточных точек обойтись нельзя. 3) Динамические контейнеры вообще являются самостоятельным полноценным элементом, в задачу которого входит управление копиями внутренней схемы. Т.е. его нельзя представлять как кусок единой схемы - это не логически, не физически неверно. 4) Аналогично динамическим контейнерам, в пакете WEB скажем есть класс элементов-коллекторов(javaCollector, HTMlCollector), которые позволяют в текущую схему, генерирующую код для одного языка вставлять схему, генерирующую код для совершенно иного языка. Очевидно, что в этом случае прямое подключение элементов без посредничества мультика не возможно даже в теории. Как разрешаются такие проблемы сейчас? Достаточно просто: все 10 точек следовало изначально упаковать в один поток с применением IndexToChannel и обратного ему. Названия точек можно менять, если пользоваться мультиками Ex. oldTV писал(а): Если поднести к нему курсор, то нельзя именно на нем выбрать какую либо из точек.это не некорректная работа. В анонсе к 164 билду писалось, что разнотипное управление сделано с целью выяснения, какое управление лучше. Увеличение размера может быть не очень удачной идеей. Сейчас размер хаба составляет примерно один шаг сетки. Эих габаритов как раз хватает на размещение стрелок в потоках между элементами, поставленными по сетке с двойным шагом:
|
|||
карма: 27 |
|
Ответов: 689
Рейтинг: 20
|
|||
Dilma, ты уже писал однажды о том, что это не просто. Тогда речь шла о "регионах". Идея была в том, что-бы уйти опять же от матрешковости. Ты сказал: контейнеры заложены в программу. Я подумал, что если они заложены, почему бы не оставить этот принцип. Пускай он будет, раз уж если переделать его, придется переделать принципиально программу. В теперешнем моем предложении идея лежит в том, чтобы контейнера остались, но перенос элементов из одного в другой, вызывал удаление или установку точек автоматически. Перенес я текстовое поле из контейнера 1, точки do, on, data, var имеющие связи с другими элементами вне контейнера удалились. Затащил я текстовое поле в контейнер - точки do, on, data, var связывающие текстовое поле с другими элементами -автоматически продублировались на контейнере и условие, о котором ты говорил, соблюдается - появились промежуточные точки. Только их создала среда, а не пользователь каждый раз. Более того, добавилась возможность управлять контейнером не входя в него. Раскрыт контейнер - я могу установить например, для панели, цвет и т.д. В текущей среде, я должен войти в него. Я не могу выделить несколько контейнеров (панелей) и задать им всем свойство Visible например. Я должен это делать для каждого.
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
oldTV, такая ф-ность как я понимаю предполагает некий интеллект со стороны среды, заключающийся в том, что она должна каким-то образом определять список и положение автоматически добавляемых точек.
с выделением элементов из разных контейнеров тоже проблема. Для каждого мультика существует свой менеджер выделенных элементов и в редакторе св-тв отображается содержимое только менеджера текущего контейнера. все остальное можно быдет делать через менеджер проекта |
|||
карма: 27 |
|
Ответов: 689
Рейтинг: 20
|
|||
Dilma, список и положение... хм... А нельзя сделать так:
предположим есть елемент Edit, к которому приходят 4 линка на 4 точки (doText - на точку слева, Text - на точку снизу, Str - на точку сверху и onChange на точку справа). При помещении элемента Edit в пустой контейнер, не имеющего ни одной точки, автоматически будут созданы 4 точки и к ним, от элемента придут линки. От doText придет линк к doWork1, от Text - к Var1, от Str к Data1 и т.д. Соотвественно от точки doWork1 линк пойдет на точку, которая до помещения Edit в контейнер, была связана с doText, от точки Var1 до точки которая была связана с Text и т.д. и т.п. Если например говорить об аналоге в жизни, то примерно так: Между двумя телефонами есть провод. Телефоны стоят в одной комнате. Провод связывает трубку одного телефона с другим. Захотелось перенести 1й телефон в другую комнату. Провод дошел до стены, автоматически образовал розетки с одной стороны и с другой. Теперь телефон соединен с розеткой на стене в первой комнате, розетка на стене в первой комнате с розеткой на стене во второй, розетка во второй комнате со вторым телефоном. Промежуточные точки, без которых нельзя, это розетки. Если в контейнере уже были Var1, Data1, то при помещении в него Edit, с 4 линками в нем будут: doWork1, onEvent1, Var1 (который был), Var2 (пришла с Edit), Data1(была), Data2(пришла с Edit). может так как-то? |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
oldTV, шаманство в переносе элементов таким образом состоит не в том, чтобы автоматически что-то там куда-то добавить, а в том, чтобы после этого не пришлось переделывать все автоматические перепостроения ручками. Например сейчас мне видится такая ситуация:
- есть две развернутые пали - в одной из них есть Edit с 10 сълинкованными точками - перетаскивает Edit из одной в другую - уже в процессе перетаскивания ломаются напроч абсолютно все связи(особенно если панели полностью не совпадают по координатам) - когда Edit из одной панели перетащен в другую от связей уже ничего удобоваримого скорей всего не останется - сплошные пересекающиеся уходящие под элемент ломанные - как только отпустили Edit начался процесс перепостроения - связи от Edit пересекают наверно все возможные стороны контейнера, что делает попытку поставить точки по координатам пересечения связей с ребрами невозможной - а это значит точки на контейнер будут добавлятся в порядке перебора их в цикле по элементу Edit - а это в свою очередь значит, что количество ломанных увеличится вдвое, кроме того все они притерпят перепостроение промежуточных точек(тоже самое, как это сейчас делается при сбрасывание линка на линк) - => получаем полную кашу из связей, не умеющих по внешнему виду ничего общего с тем, что было до перетаскивания. как вывод: непонятно, чем не устраивает предложение воспользоваться многомерными потоками или хотя бы стандартным IndexToChannel. |
|||
карма: 27 |
|
Ответов: 689
Рейтинг: 20
|
|||
я не совсем понимаю как ломаются связи? Линии, чтоли становятся ломаными или как-то неправильными? |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
oldTV писал(а): я не совсем понимаю как ломаются связи? Линии, чтоли становятся ломаными или как-то неправильными?перемести элемент Edit в область элемента InfoTip code_1830.txt oldTV писал(а): Как он может подойти для Var или Data?завернуть данные методов в МТ oldTV писал(а): можно пример работы с многомерными потоками для do, data, var и on?tutorialMultiThread.sha |
|||
карма: 27 |
| ||
файлы: 1 | code_1830.txt [946B] [536] |
Ответов: 689
Рейтинг: 20
|
|||
по поводу перемещения элемента Edit в область элемента InfoTip в предыдущем примере: совершенно согласен, картина будет выглядеть вот так: code_1831.txt
Но если считать что InfoTip контейнер, то автоматически на его правой грани должно образоваться соответствующее колво точек:
|
|||
карма: 0 |
| ||
файлы: 1 | code_1831.txt [950B] [459] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
oldTV, ну и как - возможноли без ручной правки понять, что куда идет в результате?
|
|||
карма: 27 |
|
Ответов: 689
Рейтинг: 20
|
|||
Add(MainForm,11553458,441,238)
{ Left=20 Top=105 link(onActivate,7133616:doText,[(485,244)(485,195)(289,195)(289,146)]) link(onDeactivate,7133616:doText2,[(485,251)(485,202)(289,202)(289,153)]) link(onKeyDown,7133616:doSetFocus,[(485,258)(485,209)(289,209)(289,160)]) link(onKeyUp,7133616:doPosition,[(485,265)(485,216)(289,216)(289,167)]) link(onResize,7133616:doSelectLength,[(485,272)(485,223)(289,223)(289,174)]) link(onCreate,7133616:doSelectText,[(485,279)(485,230)(289,230)(289,181)]) } А разве link(Точка на 1м объекте, Объект:Точка на 2м объекте,......) не дает представление откуда идет исходит связь? После перемещения остается сделать на 1м объекте (т.е.на нашей MainForm) вот так: Add(MainForm,11553458,441,238) { Left=20 Top=105 link(onActivate,13971332:doWork1,[(485,244)(485,195)(289,195)(289,146)]) link(onDeactivate,13971332:doWork2,[(485,251)(485,202)(289,202)(289,153)]) link(onKeyDown,13971332:doWork3,[(485,258)(485,209)(289,209)(289,160)]) link(onKeyUp,13971332:doWork4,[(485,265)(485,216)(289,216)(289,167)]) link(onResize,13971332:doWork5,[(485,272)(485,223)(289,223)(289,174)]) link(onCreate,13971332:doWork6,[(485,279)(485,230)(289,230)(289,181)]) } А на 2м объекте (т.е. на контейнере, в роли которого любезно выступил InfoTip) вот так: BEGIN_SDK Add(EditMulti,13971332,6,6) { WorkCount=6 link(doWork1,7133616:doText,[(70,12)(70,41)]) link(doWork2,7133616:doText2,[(70,19)(70,48)]) link(doWork3,7133616:doSetFocus,[(70,26)(70,55)]) link(doWork4,7133616:doPosition,[(70,33)(70,62)]) link(doWork5,7133616:doSelectLength,[(70,40)(70,69)]) link(doWork6,7133616:doSelectText,[(70,47)(70,76)]) } Add(Panel,10097953,35,105) { Left=10 Top=10 Width=180 Height=255 Point(doColor) } Add(Edit,7133616,133,35) { Left=475 Top=265 Point(doSetFocus) Point(doPosition) Point(doSelectLength) Point(doSelectText) Point(doSelectAll) Point(doSendToBack) Point(doBringToFront) } |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Вот "усеченние" одной из моих рабочих поделушек
code_1832.txt Тем кто попытается вытащить Edit из любой из панелей на вкладке FLASH - надо просто бить по рукам А не пытаться ему помочь Потому-что на 99% - он не понимает что творит. О чем, вообще, после такого может идти речь - не пойму |
|||
карма: 9 |
| ||
файлы: 1 | code_1832.txt [10.5KB] [576] |
Ответов: 689
Рейтинг: 20
|
|||
Апаллогетов контейнеров я так понимаю тут все... , среда не принимается и не примется никогда. Постом Galkov'а призвано воду в ступе не толочь. Умолкаю...
А остальные пункты как? Дебаггер? Pan&View? как 1,3? Понято что 4-6 не примутся никогда тоже... |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Постом Galkov'а было призвано понять происходящее, а не "выпрыгивать из трусов"
Что контейнер выполняет ф-ю элемента, а не коврового одеяла. Что ликвидировать это, значит просто завести развитие HiAsm в тупик. Что перетаскивание элемента из одного контейнера в другой, это то же самое, что: "а давайте перетащим эту строчку из кода элемента - в другой элемент, мне в схеме так удобнее" Если это непонятно, то код примера просто не смотрелся. Тогда действительно - чего его обсуждать. |
|||
карма: 9 |
|