одиночный для совместимости с MultiElement
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Dilma писал(а): приняв из потока указатель(выданный через onAdd) ретранслирует его в ClassObject через менеджераЯ думал, что у ClassObject будет специальная точка ##set, которая и установит указатель (в случае, если он имеет подходящий тип). А менеджер, не в смысле runtime, а только для среды, чтобы она знала, какие точки показать у ClassObject. |
|||
карма: 1 |
|
Разработчик
Ответов: 26148
Рейтинг: 2126
|
|||
Dilma, можешь смотреть PolyMorph, я его выложил
|
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
tsdima писал(а): Я думал, что у ClassObject будет специальная точка ##setхотелось бы избавится от наличия таких точек |
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Dilma писал(а): хотелось бы избавится от наличия таких точекНо ведь в MultielementEx они никого не пугают? И потом, избавиться - значит будет невидимая связь. Мне как-то не очень нравится... |
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
tsdima, ну хорошо. В таком случае как ты собираешься извещать ClassObject о невалидном более указателе на объект? Еще одну точку ##clear делать или вводить указатель специального типа (nil, NULL...) для подачи на ##set
------------ Дoбавленo: пример из пакета отображает только первую добавляемую фигуру. зачем создается объект базового класса? |
|||
карма: 27 |
|
Разработчик
Ответов: 26148
Рейтинг: 2126
|
|||
Dilma писал(а): пример из пакета отображает только первую добавляемую фигуруЯ, вроде, поставил WorkScheme=All. Или я не ту схему сохранил. Dilma писал(а): зачем создается объект базового класса?Но имя-то его существует и он есть всегда, почему он не должен быть в списке, как объект по-умолчанию. К нему можно обратиться по индексу 0, или по имени base, но я не создаю имя base, оно уже присутствует. Почему его нельзя использовать как одну из схем ------------ Дoбавленo: Понимаещь, тут проблема возникла не совсем понятная, имя-то есть. Проталкиваешь первую схему, а она сохраняется под индексом 0 и имеет имя base, и все имена смещаются по отношению к объектам. По индексу выйти можно, а вот по имени, уже фиг |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): Я, вроде, поставил WorkScheme=All. Или я не ту схему сохранил.FWorkScheme всегда 0. nesco писал(а): Но имя-то его существует и он есть всегдаэто не так. nesco писал(а): Почему его нельзя использовать как одну из схемя ничего не говорил про использование - я спросил, зачем и для чего создается и добавляется элемент базового класса? в схеме Polymorph.sha зачем мне нужен объект базового класса? ------------ Дoбавленo: nesco писал(а): Понимаещь, тут проблема возникла не совсем понятная, имя-то есть. Проталкиваешь первую схему, а она сохраняется под индексом 0 и имеет имя base, и все имена смещаются по отношению к объектам. По индексу выйти можно, а вот по имени, уже фигну так проблему решать надо, а не затыкать ее ------------ Дoбавленo: дублирование св-ва _prop_WorkScheme полем FWorkScheme тоже мне не понятно. |
|||
карма: 27 |
|
Разработчик
Ответов: 26148
Рейтинг: 2126
|
|||
Только что дома обновился и проверил, пример работает нормально и отображает все фигуры
------------ Дoбавленo: Dilma писал(а): FWorkScheme всегда 0Ну не может быть такого, у меня-то работает. Dilma писал(а): дублирование св-ва _prop_WorkScheme полем FWorkScheme тоже мне не понятноДа это осталось после того, как я исправил инициализацию свойст в CodeGen для полиморфа, это просто надо убрать. Dilma писал(а): это не такЯ специально проверял список -- первым пунктом там base, интересно и когда его там нет Dilma писал(а): ну так проблему решать надо, а не затыкать ееНо это не окончателная версия, а прототип. В спокойной обстановке можно будет додумать дальше |
|||
карма: 22 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Dilma писал(а): как ты собираешься извещать ClassObject о невалидном более указателе на объект?А зачем извещать? Вот как, например, реагирует ##hselect, если ему подать неправильный handle? Просто ничего не делает. Так и тут. Нужно только предусмотреть механизм проверки правильности указателя. Т.е. получая указатель, ClassObject может сохранить также ссылку на родительский список, и потом проверять в этом списке наличие данного объекта. Непонятно только, что делать, если родительский список располагался где-то в динамическом контейнере, и его уничтожили. Хотя, сложно это всё. Проще действительно предусмотреть механизм извещения об удалении объекта. ------------ Дoбавленo: А можно ещё хранить глобальный список, как в новом TCP.pas |
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco, зачем в кодогенераторе это?
nesco писал(а): Я специально проверял список -- первым пунктом там base, интересно и когда его там нетречь не о списке классов - речь о списке объектов FChilds tsdima писал(а): А зачем извещать?мы все же допускаем ситуацию, при которой к схеме могут обратиться при не заданном объекте. Я не считаю, что у метода ##set такая большая функциональная нагрузка, что его необходимо визуализировать и тем более тянуть до него трассы при пазных уровнях вложенности ClassObject и onAdd |
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
карма: 1 |
| ||
файлы: 1 | code_11534.txt [8.1KB] [907] |
Разработчик
Ответов: 26148
Рейтинг: 2126
|
|||
tsdima, обновился бы ты, его заменили уже.
Вот твой пример для новой версии
Может дополнения какие предложишь. Кстати, там схему по имени выбирать можно |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
между прочим такая реализация не подходит для проектирования на его основе PageControl - в нем каждая строка с названием вкладки должна пораждать стандартный контейнер со своим набором точек.
|
|||
карма: 27 |
|
Разработчик
Ответов: 26148
Рейтинг: 2126
|
|||
Dilma, слушай, а сделать поддержку полиморфа в среде нельзя Хотел создать ChildPanelPoly, а не фига не получилось пишит нет такого элемента. Делал все полностью по аналогии ChildPanelEx, естественно, с другим классом. Порылся и нашел, что MultiElementEx прописан в самом HiAsme.
|
|||
карма: 22 |
|