Боюсь что придется ждать кого-то, кто поняв все выше написанное сможет задать вопрос по другому и возможно я смогу на него ответить. Вот г-н nesco, к примеру. Вроде он тут все читал. А пока же я совершенно не понимаю, чего ожидается...
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
карма: 27 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Все, что написал Galkov, до конца понять может только Galkov.
По теме -- упор у нас в том, что мы не можем создать мультик контрол, дочерний, по отношенью к помещенному в нему контролу (результатом этого было бы то, что предлагает сделать Tad), естественно, с унаследованием всех свойств и методов. Имея такую возможность, можно было делать весьма интересные интерфейсные и схемные решения. Вроде об этом и говорил Galkov в начале Трабла еще в том, что имея сейчас унаследования свойств и методов родителского класса, мы у контролов имеем "мертвые души", проще говоря -- неработающие унаследованные свойства и методы. Это первое, что я пока понял. |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Именно это же и хотел написать:
Я совершенно не против, чтобы кто-то другой задал вопрос: как на HiAsm нарисовать схему для CodeGen (например для ElementsDelphiCodeGen, хотя для ElementsFTCGCodeGen было бы интереснее) И решит с тобой все, попутно возникающие, интерфейсные вопросы. А то, к примеру, коды ElementsDelphiCodeGen.dpr умеют (вроде бы) делать рекурсию, а среда даже проверить этого не позволяет. С незапамятных времен не могу решить этот простой интерфейсный вопрос. Научите дурака, как решать эти вопросы Честное слово, я умею учиться. Мне совершенно достаточно результата - молча буду смотреть на его решение (хоть и не самый главный он наверное), и учиться ------------ Дoбавленo: nesco писал(а): Трабла еще в том, что имея сейчас унаследования свойств и методов родителского класса, мы у контролов имеем "мертвые души", проще говоря -- неработающие унаследованные свойства и методы.
Это первое, что я пока понял А я пока - НЕТ. Разъясни пожалуйста, про чего это ты говоришь.... |
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): Трабла еще в том, что имея сейчас унаследования свойств и методов родителского класса, мы у контролов имеем "мертвые души", проще говоря -- неработающие унаследованные свойства и методы.Вот это понятно и по существу. Согласен, это следует устранять дальнейшим расширениям наследований в конфигах. ------------ Дoбавленo: Galkov писал(а): а среда даже проверить этого не позволяетпроверить что? ------------ Дoбавленo: Вот схема рекурсии:
получаемый код:
|
|||
карма: 27 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Например -- onPaint, который работает только на MainForm'e и больше нигде, хотя эта точка унаследована всеми
------------ Дoбавленo: немного опоздал |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
это видимо конфигом как-нибудь так будет решаться:
|
|||
карма: 27 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 7 раз(а), последний 2021-06-21 04:28:50 |
|||
карма: 0 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Galkov писал(а): А то, к примеру, коды ElementsDelphiCodeGen.dpr умеют (вроде бы) делать рекурсию, а среда даже проверить этого не позволяет.
С незапамятных времен не могу решить этот простой интерфейсный вопрос. Можно сделать новый режим динамического мультика, при котором он будет удаляться после отработки ##add, т.е. эта точка и будет входом в рекурсию. |
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
tsdima писал(а): он будет удаляться после отработки ##addНо один-то по-любому должен остаться -- самый первый. Может лучше отдельную такую точку предусмотреть, типа -- ##addautoremove |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
tsdima, ты чего такое говоришь
Во-первых, есть такой режим - MultiElementEx.Mode=OnlyOnce Во-вторых, даже если бы его не было, при "не выбранном" экземпляре контейнера все именно в таком режиме и срабатывает В-третьих, мы именно с тобой это уже подробно обсуждали на примере рекурсивного поиска в реестре (извини, но с памятью у меня лучше, чем с поиском по форуму): ты ставил HUB плюющийся на ##add, на рабочую точку, на ##delete через арифметику на ##count-1. А я тебе показывал что все это работает и без этих премудростей. Там же рассказывал, что для запуска рекурсии "методом кольцевания" Dilma исхитрился на создание элемента Stack - Да, именно такова историческая правда про этот элемент. Вспомнил Примерно так:
"Горизонтальное" смотрелось бы логичнее и привычнее (не пужайтесь, мультик внутри, это в оригинале -- линк на родителя ):
Это можно заставить работать вышеупомянутыми "имеющимися средствами" Попробуйте, и зацените понятность таких решений А ведь нарисованная схема, это практически прямое воплощение таких кодов из ElementsFTCGCodeGen.dpr
И чего же получается Оказывается, существует стиль программирования рекурсии для "белых людей" - код выше сделан ведь Dilma И существует - для пользователей HiAsm, пример из последнего поста Dilma Мне представляется, что, оставаясь пользователем HiAsm, я имею право на стиль программирования "для белых людей" Мне было бы совершенно понятно, что приведенное решение выступает как временное, что великолепный факт исполнения веток HUB-а: верхняя в DesignTime, а нижняя в RunTime - тоже временное Но это же преподносится как новая концепция Мне совершенно не нравится подход, связанный с НЕОБОСНОВАННЫМ изменением концепции. И что характерно, все это уже имеет бороду дольше, чем 2 года (точнее вспомнить и не удается) У меня уже и цензурные слова кончаются |
|||
карма: 9 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Galkov писал(а): что великолепный факт исполнения веток HUB-а: верхняя в DesignTime, а нижняя в RunTimeА где это обсуждалось, я чего-то упустил. Вроде по действиям, нижняя точка всегда выполняется после верхней, и никак не наоборт. На чем это можно конкретно проверить |
|||
карма: 22 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Galkov писал(а): tsdima, ты чего такое говоришь Шашки давно в руки не брал |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco, поверь на слово
|
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Гость Tad писал(а): только используемых т.е. к возврату к старому ини ?а ECreator должен сам догадаться, какие св-ва и методы родительского элемента используются в дочернем? nesco писал(а): Вроде по действиям, нижняя точка всегда выполняется после верхнейправило есть только на забор данных с верхних точек(аналогично парсингу аргументов в ЯВУ). На остальное в сущности никаких ограничений не налогается. |
|||
карма: 27 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Dilma писал(а): а ECreator должен сам догадаться, какие св-ва и методы родительского элемента используются в дочернем?Элемент Edit : ну добавил я строчку if _prop_ClearOnEnter then Control.Text := '; в процедуру KeyDown ( и в свойства соответственно ) Не всегда нужно, чтобы после Enter окно очищалось (чаще наоборот). (не предлагаю сделать то же в штатном) Элементы RadioButton и СheckBox : по большому счету, если хорошо подумать то правые точки onSelect и onCheck, которые можно было назвать одним именем onClick и нафик не нужны. Пощелкай по RadioButton и убедись, что визуально он остается выбраным, а onSelect отрабатывает (дребезг контактов ) code_9213.txt |
|||
карма: 25 |
| ||
файлы: 1 | code_9213.txt [161B] [495] |