Вверх ↑
Этот топик читают: Гость
Ответов: 3851
Рейтинг: 159
#16: 2009-07-16 23:09:21 ЛС | профиль | цитата

1. левые и нижние точки вполне могут существовать одновременно на всех экземплярах сразу.
2. любая верхняя или правая точка может быть только у одной копии (ссылки) элемента, при любом их колличестве (точки можно переключать как радиобутоны). либо указывать очерёдность выдаваемых событий как у хаба (для правых точек).
------------ Дoбавленo в 23.12:
между копиями хотелось бы перемещаться, методом перебора или выбирая из контекстного списка путь к нужной ссылке..
------------ Дoбавленo в 23.19:
с интерфейсными надо что-то подумать - все его ссылки не могут быть копиями, след-но должны отличаться например наличием у них (в отличии от самого элемента) некоего значка (как сейчас на ссылке например)..
карма: 0
начавший
0
Администрация
Ответов: 15294
Рейтинг: 1518
#17: 2009-07-16 23:56:26 ЛС | профиль | цитата
Андрей. писал(а):
любая верхняя или правая точка может быть только у одной копии (ссылки) элемента

а если я вызываю некий метод у одного ссылочного элемента, а его data точка находится у другого? Это некое нарушение общепринятой концепции.
карма: 26
0
Разработчик
Ответов: 4697
Рейтинг: 426
#18: 2009-07-17 11:32:01 ЛС | профиль | цитата
Еще одна важная особенность:
Допустим есть кнопка, вы хотите чтоб событие onClick происходило в мультике, но здесь есть одно НО, в мултиэлементы не вставишь интерфейсные объекты, поэтому pointer-ссылка не должна заимствовать у родителя интерфейсные функции(не знаю как назвать по-другому...)
А на счет в какой последовательности вызывать события либо по отступу сверху(самый нижний - последний) либо свойство вроде Tab(порядок выделения элемента по кнопке tab)
карма: 10
0
Администрация
Ответов: 15294
Рейтинг: 1518
#19: 2009-07-17 11:35:22 ЛС | профиль | цитата
да, согласен.
карма: 26
0
Ответов: 9906
Рейтинг: 351
#20: 2009-07-17 14:48:36 ЛС | профиль | цитата
Хм... Попробую изменить традиции, и начать с конца

Вот два дня уже пытаюсь вкурить в проблемы генерации кода - не выходит не фига у меня
И думаю, что их просто нет. Делов-то - на "три строчки кода", прости господи


#pas
type
THI_EvArray = array of THI_Event;
THIObjLinker = = class(TDebug)
..............................

procedure THIObjLinker.doWork;
var F,G:THI_EvArray;
begin
F := Obj.HookEvents;
G := Obj.HookDatas;
Obj.HookEvents := Events;
Obj.HookDatas := Datas;
_hi_OnEvent(Obj.Works[Index],Data);
Obj.HookEvents := F;
Obj.HookDatas := G;
end;

..............................
procedure THIEditMultiEx.onEvent;
var X:TListEH;
begin
X.Hnd := Self;
X.Prv := THIMultiElementEx(FParent).EvHandle;
THIMultiElementEx(FParent).EvHandle := @X;
if (Index<Length(HookEvents))and(assigned(HookEvents[Index].Event)) then
_hi_onEvent(HookEvents[Index],Data);
else
_hi_onEvent(THIMultiElementEx(FParent).Events[Index],Data);
THIMultiElementEx(FParent).EvHandle := X.Prv;
end;
А кодогенерация ObjLinker не должна отличаться от мультика-Ex - аж ничем
карма: 9

0
Администрация
Ответов: 15294
Рейтинг: 1518
#21: 2009-07-17 15:00:37 ЛС | профиль | цитата
Galkov писал(а):
И думаю, что их просто нет

для MultiElement-ов их нет и никто не утверждал обратного. Речь в топике с первого до пердпоследнего сообщения шла о простых элементах, контейнерами не являющихся.
карма: 26
0
Ответов: 9906
Рейтинг: 351
#22: 2009-07-17 15:48:23 ЛС | профиль | цитата
Ну тогда придется все-таки вернуться к началу
Казалось бы, простой ответ: делаешь "тривиального" наследника к любому элементу, который уже будет являться мультиком.
Ан - дулю. Почему спрашивается. Потому-что дом с крыши строим.

Вообще-то существуют три последовательные задачи: Создание элемента => Наследование => Объекто-указание
И решать их в иной последовательности - можно получить совсем не то, что надо
Я себе плохо представляю, как можно говорить о наследовании, не имея технологии создания элемента средствами HiAsm

Да и объектоуказание - прошу прощения, но описанное - это не совсем то, что надо, например мне, для решения задач.
Мне нужно для решения задач, как минимум -- менять поле Obj в Run-Time
У этого элемента должна быть не одна характеристика, а ДВЕ: св-во, именуемое классом элемента, и определяющее его внешний вид, и хэндл конкретного объекта данного класса, получаемый в Run-Time.

Грубо говоря: есть динамический мультик, и в нем создано под сотню экземпляров. Соответственно, есть сто разных хэндлов
И любой из них пользователь должен иметь право установить в процессе работы (а не компиляции) в элемент с одним и тем же внешним видом (вот он-то и опредяляется в Design-Time)
Все просто - метод THIObjLinker.hSelect, например.
Который непонятно как должен распознать качество хэндла. Непонятно как, потому-что начинаем строить с крыши, наверное

Еще более банально - два (три, четыре, пять...) разных по содержанию мультика, но с одинаковым интерфейсом. Как это решается - они оба (все - грубо говоря) являются наследниками "пустышки", у которой есть только точки, а в ObjLinker эта пустышка выставлена как св-во класса, и хэндлы этих мультиков (например!!! возможны и другие решения - прямой и видимый линк до оригинала) подаются на hSelect

Так мое мнение такое: для того, чтобы заниматься программированием - нужно именно ЭТО.
А чтобы сделать это - нужно решать 3-х ходовую шахматную задачу. Спорить не буду, решать одноходовые - быстрее. Только это другие задачи, а не те, которые нужны. Как мне кажется.

карма: 9

0
Администрация
Ответов: 15294
Рейтинг: 1518
#23: 2009-07-17 16:17:04 ЛС | профиль | цитата
понятно, как обычно каждый о своем
карма: 26
0
Ответов: 3514
Рейтинг: 184
#24: 2009-07-17 17:18:53 ЛС | профиль | цитата
И что в итоге?
карма: 0
0
Администрация
Ответов: 15294
Рейтинг: 1518
#25: 2009-07-17 18:37:18 ЛС | профиль | цитата
на данный момент такой: реализация указателей на простые элементы целесообразна только в пакетах на базе кодогенератора FTCG
карма: 26
0
Ответов: 3851
Рейтинг: 159
#26: 2009-07-17 20:24:40 ЛС | профиль | цитата
Dilma писал(а):
а если я вызываю некий метод у одного ссылочного элемента, а его data точка находится у другого? Это некое нарушение общепринятой концепции.

нет - это не будет нарушением общепринятой концепции (и совместимости) до тех пор, пока юзер не решит воспользоваться благами элемента pointer. На мой взгляд это верх элегантности ( никакого вреда кроме пользы : ) ..
карма: 0
начавший
0
26
Сообщение
...
Прикрепленные файлы
(файлы не залиты)