Ну в принципе да, а сверху они некрасиво смотрятся, что-ли? Я, как-бы, предполагал их сверху...
------------ Дoбавленo:
Типа так:
Этот топик читают: Гость
Ответов: 2125
Рейтинг: 159
|
|||
карма: 1 |
| ||
файлы: 2 | polymorf_multi.png [8.7KB] [631], polymorf_multi_.png [5.2KB] [616] |
Разработчик
Ответов: 26148
Рейтинг: 2126
|
|||
А мне больше импонирует структура с вложенными мультиками, проще как-то, и нагляднее
|
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
открываем аукцион по этому вопросу...
|
|||
карма: 27 |
|
Ответов: 3655
Рейтинг: 69
|
|||
Закладки
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
добавлена тестовая реализация полиморфного динамического мультиэлемента с возможностью наследования неограниченного числа сабклассов от одного базового класса. Проще говоря контейнер данного типа может содержать в себе множество схем, интерфейс которых полностью идентичен и определяется интерфейсом базового контейнера с именем base. В остальном все работает и выглядит так, как описано выше по топику. Разве что не все точки связанные с управлением контейнеров в RunTime еще определены.
Вот тестовый пример: code_10491.txt думаю из доработок первым делом имеет смысл добавить некий элемент среды, который позволит вызывать унаследованные методы от класса base. Кроме того есть желание переделать логику работы с массивом схем, а именно расширить понятие "текущая схема" - т.е. если в качестве текущей ничего не задано, то любое doWork дублируется на все схемы контейнера. Это избавит от необходимости лепить внешние циклы для перебора всех схем контейнера. Если есть какие еще дополнения по этому вопросу вписываем их сюда. |
|||
карма: 27 |
| ||
файлы: 1 | code_10491.txt [2.4KB] [869] |
Разработчик
Ответов: 26148
Рейтинг: 2126
|
|||
Dilma писал(а): Если есть какие еще дополнения по этому вопросу вписываем их сюдаЯ уже писал, что при варианте с табуляторами хуже визуальное восприятие, визуально непонятно, сколькоа схем в мультике, можно предложить область с квадратными иконками схем, по которым можно кликать и заходить внутрь -- альтернатива табуляторам. А в остальном -- очень интересно получилось. |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): можно предложить область с квадратными иконками схем, по которым можно кликать и заходить внутрь -- альтернатива табуляторам.а картинку нарисовать? |
|||
карма: 27 |
|
Главный модератор
Ответов: 2999
Рейтинг: 396
|
|||
Polymorph - полиморф [N]
Polymorphic - полиморфный [A] Polymorphism - полиморфизм [N] Polymorphous - полиморфный [A] |
|||
карма: 6 |
|
Разработчик
Ответов: 26148
Рейтинг: 2126
|
|||
Nic писал(а): а картинку нарисовать?Что-то типа того (сам же сначала это предлагал) ------------ Дoбавленo: Насчет ошибки правописания -- именно Polymorph, а не Polimorph |
|||
карма: 22 |
| ||
файлы: 1 | project_poly_001.png [5.8KB] [593] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco, всетаки решение с табами имеет неоспоримые преимущества
- сразу видны имена сабклассов - при реализации только базового класса получаем полный аналог обычного MultiElement в режиме Dynamic, т.е. для пользователя не вводим новых сущностей, что делает освоение этой технологии более мягким |
|||
карма: 27 |
|
Разработчик
Ответов: 26148
Рейтинг: 2126
|
|||
Dilma, еще вопрос -- а возможна ли связь между сабклассами
------------ Дoбавленo: Да, еще -- а почему ничего не выдает базовый элемент, а ведь стоит выдать строку base worked |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco, то, что лежит внутри любого динамического контейнера это всего лишь шаблон, по которому строится схема в RunTime. Если мы говорим о каких-то связях в них то должны сначала определиться, что это за связи и как они должны работать. Связь в классическом виде - Event-Work - не возможна тут физически.
------------ Дoбавленo: nesco писал(а): Да, еще -- а почему ничего не выдает базовый элемент, а ведь стоит выдать строку base worked потому что перекрытые методы базового класса не выполняются пока их явно не вызовет потомок - классическое поведение в ООП при наследованиях |
|||
карма: 27 |
|
Ответов: 3655
Рейтинг: 69
|
|||
Появилась ещё одна идея
Вообщем в Висте есть иммитация трёхмерных окон Может и нам что то подобное Только думаю это сложно-реализуемо Пока писал вспомнил ещё про одну фичу для рабочего стола. Вообщем миниатюры окон. При вставке мультика слева появляется ещё одна закладка в которой скролом можно перемещять миниатюры. Вообщем панель такая же как сейчас Elements Только там мультики . |
|||
карма: 0 |
|
Разработчик
Ответов: 26148
Рейтинг: 2126
|
|||
Dilma писал(а): потому что перекрытые методы базового класса не выполняются пока их явно не вызовет потомок - классическое поведение в ООП при наследованияхПонял |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Вячеслав писал(а): При вставке мультика слева появляется ещё одна закладка
в которой скролом можно перемещять миниатюры. при вставке куда? закладка где? миниатюры чего? вот еще интересный пример: code_10493.txt тут оба наследника имеют общий код ввиде рандомов, которые генерируют случайные координаты для объекта. Обычно такой код выносится в protected метод или в конструктор базового класса, а результаты его работы сохраняются в protected полях, которые затем используются в потомках. Реализовать такое более менее адекватным образом сегодня можно только через аналоги GlobalVar, но действующие исключительно между base кслассом и его потомком. Т.е. примерно такая схема получится: code_10494.txt nesco, считай, что это так же пример одного из видов связи, о которых я говорил выше. |
|||
карма: 27 |
| ||
файлы: 2 | code_10493.txt [4.5KB] [797], code_10494.txt [1.6KB] [814] |