Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2009-07-12 02:01:18 ЛС | профиль | цитата
Dilma писал(а):
tsdima писал(а):
Пора бы уже перестроиться, и допустить возможность передачи в потоке не только предопределённых типов данных, но и объектов пользователя.

tsdima, и чем это от data_object отличается?

Попробую прояснить отличия
  • С передачей целочисленных данных (хэндл объекта) в потоках нет никаких проблем вообще. Никаких изменений в среде для этого не требуется
  • Без св-ва типа "класс элемента" объектоуказание бессмысленно. А это св-во - вовсе уже не data_object. Класс элемента - это константа времени компиляции, и ни к какому конкретному объекту отношения не имеет.
  • Св-во же типа data_object, наоборот - не может поменять класс, но может выбрать конкретный объект заранее предписанного класса. Грубо говоря - ничего общего
  • Соответственно, без поддержки со стороны среды изменения внешнего вида элемента в зависимости от св-ва - это лишь чит, понимание которого доступно лишь тому, кто сам изменил CodeGen под этот чит. А вот data_object не требует никакого изменения внешнего вида элемента.
    Dilma писал(а):
    да вот не хочется все это организовывать таким образом. Мешанина встроенных и пользовательских точек не удобна.

    Начнем с того, что если мы будем создавать контейнеры для функционирования как ЭЛЕМЕНТЫ, то механизм сокрытия точек (а я убежден - не только точек) будет просто необходим.
    Да, пока это однократное использование, как сегодня - в этом смысла нет. Не нужна точка - не рисуй ее.
    И что получается. Сделали элемент а-ля TControl, и что теперь - каждый Pointer-элемент теперь на пол экрана разворачивать ???
    Да нет вовсе, "открываем" только парочку нужных, и ими пользуемся. В этом месте.
    А в другом - совсем другими.
    И, между прочим, это не только сервиз пользователя, это определяет и функционирование для правых/верхних точек. Возникающие события у нутре элемента (например в ответ на вызов метода) поступают на Pointer-элемент только если они на нем "открыты". А если нет - на элемент-оригинал.
    ((btw: я не нашел аналогии для этой фишки в классических ЯВУ))

    Ну и вот, разные Pointer-элементы могут выглядеть совершенно по-разному, хоть и указуют на один оригинал
    И это даже и хорошо (если вспомнить про TControl).
    В такой ситуации (а она именно такая), дополнительные точки типа #hselect, или верхний #handle - никакого дискомфорта вызывать не должны

    Кстати говоря, никто не обращал внимание на хитромудрость исполнения элемента LPT ???
    А вот присмотритесь
    Дело в том, что он выполнен именно как Pointer-элемент, указующий не некий невидимый один (если порт один) элемент-оригинал
    Берусь утверждать, что это вовсе не потому, что я вырос и воспитывался в Голландии, а потому-что без этого работать - крайне затруднительно

  • карма: 9

    0