Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#16: 2008-03-27 02:23:12 ЛС | профиль | цитата
я не думал, что это настолько буквально 8)
карма: 0

0
Ответов: 499
Рейтинг: 1
#17: 2008-03-27 02:56:06 ЛС | профиль | цитата
блин, да что такое с регистрацией...

теперь главное не забыть сохранять исходник своего элемента ;)

немного цифр (компиляция без всякого сжатия):
сделал "элемент" мониторинг потока с сохранением старого значения (внутри 5 элементов).
схема из 5 таких элементов (по новым веянияи) - 50608
схема мз 5 исходников элемента в мультиках с копиями через "копировать ссылку" - 51192
схема их этих же элементов, но без мультиков (все наружу) - 50416

вобщем, здорово, то, чего так долго добивались большевики - свершилось ;)

p.s.
я так понимаю, что аналог хаба или FormatStr (элемент с настраиваемым кол-вом точек) сделать таки не получится?
карма: 0

0
Ответов: 9906
Рейтинг: 351
#18: 2008-03-27 05:11:51 ЛС | профиль | цитата
Мда...

Генерировать HWS мультика по схеме - это идея, конечно, мощная
С оптимизмом на этот счет, пока по-скромнее будет
карма: 9

0
Администрация
Ответов: 15294
Рейтинг: 1518
#19: 2008-03-27 11:36:09 ЛС | профиль | цитата
Galkov писал(а):
линки не получили случайно возможность иметь разные св-ва

нет

HikeR писал(а):
я так понимаю, что аналог хаба или FormatStr (элемент с настраиваемым кол-вом точек) сделать таки не получится?

не получится. Для этого сначало требуется разработать интерфейсное решение, позволяющее делать такие вещи, а уже потом думать, как на его основе делать элементы.
карма: 26
0
Ответов: 9906
Рейтинг: 351
#20: 2008-03-30 04:05:30 ЛС | профиль | цитата
Вообще-то, "двойная" установка одного св-ва для элемента внутри мультика - не есть правильно

Как впрочем, и его установка (при блокировании "первой" установки, что не очень сложно) в порядке, отличном от того, на который рассчитывал автор элемента
карма: 9

0
Администрация
Ответов: 15294
Рейтинг: 1518
#21: 2008-03-30 15:38:01 ЛС | профиль | цитата
порядок установки св-тв вообще говоря не должен влиять на работу элемента. Такое условие всегда существовало для точек, но не для св-тв.
карма: 26
0
Ответов: 9906
Рейтинг: 351
#22: 2008-03-30 16:00:14 ЛС | профиль | цитата
Да ну
карма: 9

0
Разработчик
Ответов: 26067
Рейтинг: 2121
#23: 2008-03-30 16:17:46 ЛС | профиль | цитата
Dilma писал(а):
Такое условие всегда существовало для точек, но не для св-тв

Galkov писал(а):
Да ну

Оригинально...
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#24: 2008-03-30 17:05:21 ЛС | профиль | цитата
nesco, у тебя такое-же в окне "Отладка"

Build start...
Generated code
Lists creating
End of create.
Заполняем имена элементов, секции Units, Vars, находим Parent-а
Создаем Parent-а и инициализируем его
Запускаем конструкторы и инициализацию остальных элементов схемы
Lists creating
End of create.
Заполняем имена элементов, секции Units, Vars, находим Parent-а
Создаем Parent-а и инициализируем его
Запускаем конструкторы и инициализацию остальных элементов схемы
Создаем линки для всей схемы
Табуляция........................
Устанавливаем деструкторы элементов схемы
Устанавливаем деструктор Parent-а
Lists creating
End of create.
Заполняем имена элементов, секции Units, Vars, находим Parent-а
Создаем Parent-а и инициализируем его
Запускаем конструкторы и инициализацию остальных элементов схемы
Lists creating
End of create.
Заполняем имена элементов, секции Units, Vars, находим Parent-а
Создаем Parent-а и инициализируем его
Запускаем конструкторы и инициализацию остальных элементов схемы
Создаем линки для всей схемы
Табуляция........................
Устанавливаем деструкторы элементов схемы
Устанавливаем деструктор Parent-а
Lists creating
End of create.
Заполняем имена элементов, секции Units, Vars, находим Parent-а
Создаем Parent-а и инициализируем его
Запускаем конструкторы и инициализацию остальных элементов схемы
Создаем линки для всей схемы
Табуляция........................
Устанавливаем деструкторы элементов схемы
Устанавливаем деструктор Parent-а
Lists creating
End of create.
Заполняем имена элементов, секции Units, Vars, находим Parent-а
Создаем Parent-а и инициализируем его
Запускаем конструкторы и инициализацию остальных элементов схемы
Создаем линки для всей схемы
Табуляция........................
Устанавливаем деструкторы элементов схемы
Устанавливаем деструктор Parent-а
Создаем линки для всей схемы
Табуляция........................
Устанавливаем деструкторы элементов схемы
Устанавливаем деструктор Parent-а
Создаем линки для всей схемы
Табуляция........................
Устанавливаем деструкторы элементов схемы
Устанавливаем деструктор Parent-а
Create project...
Command line: dcc32.exe "C:\Program Files\HiAsm\Elements\delphi\code\SQLLite_Demo.dpr" -DSQLITE_OBJ -Q "-EG:\DArh\AllHiAsm\HiAsm363b162\
Borland Delphi Version 12.0 Copyright (c) 1983,98 Inprise Corporation

C:\Program Files\HiAsm\Elements\delphi\code\hiPopupMenu.pas(63) Hint: Variable 'i' is declared but never used in 'THIPopupMenu._OnMes'

C:\Program Files\HiAsm\Elements\delphi\code\hiPopupMenu.pas(84) Hint: Value assigned to 'k' never used

C:\Program Files\HiAsm\Elements\delphi\code\hiPopupMenu.pas(90) Hint: Variable 'i' is declared but never used in 'THIPopupMenu.RefBMP'

C:\Program Files\HiAsm\Elements\delphi\code\hiPopupMenu.pas(16) Hint: Private symbol '_OnDraw' declared but never used
78573 lines, 1.30 seconds, 284372 bytes code, 29649 bytes data.
Compress code
End build
Здесь был Tad.
карма: 0

0
Разработчик
Ответов: 26067
Рейтинг: 2121
#25: 2008-03-30 17:41:28 ЛС | профиль | цитата
Почти так, но покороче.

Build start...
Generated code
Lists creating
End of create.
Заполняем имена элементов, секции Units, Vars, находим Parent-а
Создаем Parent-а и инициализируем его
Запускаем конструкторы и инициализацию остальных элементов схемы
Создаем линки для всей схемы
Табуляция........................
Устанавливаем деструкторы элементов схемы
Устанавливаем деструктор Parent-а
Create project...
Command line: ...

карма: 22

0
Администрация
Ответов: 15294
Рейтинг: 1518
#26: 2008-03-30 20:00:32 ЛС | профиль | цитата
Galkov, не должен и не влияет - вещи разные. То что в стандартном пакете почти все визуальные элементы на это завязаны ни о чем однако не говорит.
карма: 26
0
Ответов: 9906
Рейтинг: 351
#27: 2008-03-30 20:13:22 ЛС | профиль | цитата
Ну почему же, говорит о многом
Например, о стиле менять правила во время игры: если не получается сделать по правилам, надо изменить правила

Я лично, плохо понимаю, как так можно работать
Проблемы у меня, с пониманием такового


карма: 9

0
Администрация
Ответов: 15294
Рейтинг: 1518
#28: 2008-03-30 22:01:42 ЛС | профиль | цитата
Galkov, еще одна поправка: написанное выше относится к FTCG и всему, что унаследовано далее по этой ветке развития пакетов. А в FTCG говорить о порядке инициализации св-тв смысла не имеет. Точнее там нет такого понятия вообще поскольку св-ва являются частью результирующего кода и не имеет какой либо сущности. Всвязи с этим поднятый тут вопрос о порядке инициализации св-тв средой должен решаться в рамках конкретного пакета одним из двух способов:
1) исправлением эдементов пакета так, чтобы порядок не имел значения
2) внесением изменений в интерфейс взаимодействия между средой и пакетом
карма: 26
0
Ответов: 9906
Рейтинг: 351
#29: 2008-04-01 00:13:39 ЛС | профиль | цитата
1) Ну мне представляется, что говорить про FTCG в этом аспекте пока преждевременно. Создание элемента имеет целью многократное использование кода - функциональные вызовы методов объекта. А мы пока не имеем этой технологии в FTCG

2) Исправить коды, чтобы порядок не имел значения - не представляется правильным решением.
Поразмысливши за рюмкой чая, прихожу к такому заключению: в природе существуют, видимо, два типа свойств.
Те, которые являются фактически аргументами конструктора, и без них немыслимо само создание объекта
И те, которые являются действительно свойствами, до создания объекта они бессмысленны, и действительно придают объекту некие новые качества
И тут мне представляется, что как раз нельзя поменять местами установку св-в именно этих разных типов
А о том, чтобы порядок не имел значения для однотипных - можно говорить, наверное

3) Логично было бы делать конструирование кодов в этом аспекте примерно так

#pas
Obj := THiObj.Create(Control, Arg1, Arg2);
Obj.prop1 := Prop1;
Obj.prop2 := Prop2;
Obj.prop3 := Prop3;
....
Но таковое вызывает трудности: необходим шаблон конструктора, а у нас есть договоренность, что среда ничего не знает о языковых особенностях компилятора.
Следовательно, не может предоставить эту информацию для CodeGen

Можно попробовать более универсальный подход, в котором конструктор нашего объекта создает лишь контейнер для аргументов, а "настоящий" конструктор сосредоточен в некотором методе Init

#pas
Obj := THiObj.Create;
Obj.Control := Control;
Obj.Arg1 := Arg1;
Obj.Arg1 := Arg2;
Init;
....
Obj.prop1 := Prop1;
Obj.prop2 := Prop2;
Obj.prop3 := Prop3;
....
Далее, код всей схемы может быть разбит на секции "конструирования", и "установки св-в".
Собственно, и "создание линков для всей схемы" можно присоединить к этой второй секции

И код для мультика можно сформировать так же: есть код конструктора, устанавливающий "аргументы" для всей схемы - первая секция, в которой "настоящие конструкторы" еще не запускались
Есть метод Init, который эти "настоящие конструкторы" запускает, и устанавливает все св-ва
Безусловно, присвоения тех аргументов или св-в, которые являются внешними - в кодах мультика опущены.
И тогда инициализацию мультика можно сделать по схеме, как и для штатного элемента, как показано выше.


Вот и возникает ясность с внесением изменений в интерфейс взаимодействия между средой и пакетом
Среда должна рассказать для CodeGen не только о значении интерфейсного св-ва, но и сообщить его некие атрибуты
  • Является данное св-во аргументом конструктора, или истинным св-вом
  • А не выключено ли данное св-во из списка установки
  • А не является ли оно необходимым только среде и не имеет никакого отношения к коду
    Почему я смешал первые два вопрос в одну кучку...
    Потому-что от второго не было бы никакого результата, без техники настоящего поста - мы все равно не смогли бы соблюсти идеологию KOL и получить 30К на пустую форму
    А если оставить только первую позицию - результат какой-то будет, только фиг кто его увидит, пока второй пункт не присовокупим

    P.S. На всякий случай, предвидя ссылки на всезнающий FTCG: ничего он не знает, если мы ему об этом не скажем.
    Если некий скрипт (типа pcontrol.hws из Дельфи-2) разбирается с сотней св-в контрола, то он и понятия не имеет об особенностях конкретного элемента: что хоть в св-ве и стоит какой-нибудь clRed, ничего не надо устанавливать
    Типа, мало ли чего на заборе пишут.

  • карма: 9

    0
    Гость
    Ответов: 17029
    Рейтинг: 0
    #30: 2008-04-13 23:54:33 ЛС | профиль | цитата
    Лучше скажите когда будет новая версия?
    карма: 0

    0
    Сообщение
    ...
    Прикрепленные файлы
    (файлы не залиты)