Таак. Еще вопрос. Для чего вот эти методы block.inclvl() и block.declvl()?
Этот топик читают: Гость
Разработчик
Ответов: 26158
Рейтинг: 2127
|
|||
карма: 22 |
|
Ответов: 2125
Рейтинг: 159
|
|||
nesco писал(а): почти все можно перенести из предыдущего пакетаНе надо почти всё. Контролы - пожалуйста, а вот циклы,хабы,логику и т.п. лучше переписать заново в новом стиле. [size=-2]------ Добавлено в 15:39 nesco писал(а): Для чего вот эти методы Для красоты, видимо Отступы это. |
|||
карма: 1 |
|
Разработчик
Ответов: 26158
Рейтинг: 2127
|
|||
tsdima писал(а): а нельзя ли как-нибудь автоматом нагенерить обёрток для существующих компонент Да, действительно. Когда это уже будет, то и оптимизировать проще на рабочих компонентах. [size=-2]------ Добавлено в 15:41 tsdima писал(а): Контролы - пожалуйстаТак я про самое объемное и говорю. Остальное код-то небольшой, можно и так переписать. |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): Да, действительно. Когда это уже будет, то и оптимизировать проще на рабочих компонентах.Дулю вам с маком. Большая половина написана в стиле "а у нас нет возможности написать более эффективный код" Разрешение альтернативы ReadXXX в Дельфи-2 делается в Design-Time. В Дельфи-1 - в RunTime Вариантность типа (TData - грубо говоря) должна быть разрешена в Desing-Time Мало Если, конечно говорить об эффективности кодов. А если не говорить - разговор становится сразу беспредметным и неуместным |
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
tsdima писал(а): Делаешь StringTable.pas, а к нему - обёртку для HiAsm в вышеуказанном стиле hiStringTable.hwsименно так для объемных компонент и нужно делать. Нагенерить автоматом видимо можно. Однако это пожелание наперед. Сейчас структура работы с WIN элементами в рамках поточной кодогенерации только вырисовывается. Когда на примере нескольких элементов будет ясно видна аналогия, тогда и можно будет говорить об автоматизации. Например, сейчас полностью автоматически можно генерировать компонент для любой ф-ции вида:
|
|||
карма: 27 |
|
Разработчик
Ответов: 26158
Рейтинг: 2127
|
|||
Galkov, а ты думал над портированием методов MT в новую технологию. Тут как-то вопрос решается?
|
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): а ты думал над портированием методов MT в новую технологию. тут с этим несколько иначе будет. Скорей всего будет некое разделение на МТ в Design-Time и MT в Run-Time. Как я уже говорил МТ в Design-Time очень хорошо перекладывается на передачу более одного параметра между ф-циями и разрешается на 100% эффективно еще до генерации кода. |
|||
карма: 27 |
|
Разработчик
Ответов: 26158
Рейтинг: 2127
|
|||
Dilma, все же, с чем связан баг, который я привел несколькими постами выше?
С Win-элементами плохо только то, что на них нельзя посмотреть на форме, которой тоже не видно. |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco, ты чего от вопросов уходишь-то
Ты прошелся по конкретным hws для конкретного примера, чтобы у тебя получился файл frm.pas Или нет Не поверю, что до того как это будет сделано - будет достигнуто понимание ПРОИСХОДЯЩЕГО |
|||
карма: 9 |
|
Разработчик
Ответов: 26158
Рейтинг: 2127
|
|||
Galkov писал(а): Ты прошелся по конкретным hws для конкретного примераДа вот смотрю и по ходу натыкаюсь на вопросы. Не на все предыдущие вопросы получил еще ответ. Не понял, например, для чего проверяется переменная на наличие? А вместо frm.pas я поставил "компилить в exe" и тут же получил вышеописанную багу. [size=-2]------ Добавлено в 16:35 Еще не фига не понял, для чего постоянно во всех блоках объявляется локальная переменная old и еще похожие пременные? [size=-2]------ Добавлено в 16:41 И всеравно придется на кошках тренироваться. Домой прийду попробую какую-нибудь бяку состряпать, авось получится. Пока не наткнешься на камень в темноте (хорошо не на мину), его не обойдешь. Практику еще никто не отменял. |
|||
карма: 22 |
|
Ответов: 2125
Рейтинг: 159
|
|||
nesco писал(а): для чего постоянно во всех блоках объявляется локальная переменная oldЕсть такое понятие, как текущий выбранный блок, куда идёт вывод текста программы. Если ты хочешь что-то вывести в другой блок, его надо выбрать, но после надо восстановить тот, который был. Dilma-е скоро надоест это, и он сделает block.push(new_selected) block.pop() |
|||
карма: 1 |
|
Разработчик
Ответов: 26158
Рейтинг: 2127
|
|||
tsdima писал(а): block.push(new_selected) block.pop()Стековая организация блоков, я правильно понял? |
|||
карма: 22 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Стековая организация номеров существующих блоков
|
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): Не на все предыдущие вопросы получил еще ответ. Не понял, например, для чего проверяется переменная на наличие?Какие Какая переменная Как же тебе отвечать после такого И все-таки, правильнее по-порядку. При этом, отвечающему ясно, что ты понял, а что еще нет. А прыгать с места на места... не уверен, что так вообще беседа может склеиться... nesco писал(а): Практику еще никто не отменялЧастенько под "практикой" понимают метод "тыка". Так вот: плюнь тому в лицо, кто это вообще Методом назвал. От моего имени. Тут и отменять ничего не требуется |
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): все же, с чем связан баг, который я привел несколькими постами выше?зависит от того, что и как делалось. nesco писал(а): Не понял, например, для чего проверяется переменная на наличие?в том элементе таким образом проверяется факт использования точки Result раньше вызова doStrCat. Благодаря такой проверки в некоторых случаях компонент получает возможность съэкономить одну строчку кода для инициализации переменной, улучшая тем самым эффективность и качество кода nesco писал(а): Еще не фига не понял, для чего постоянно во всех блоках объявляется локальная переменная old и еще похожие пременные?Это ты уже совсем далеко копаешь... old объявляется для того, чтобы сохранить имя текущего блока после выполнения block.select() и вернуть его назад после окончания работы с выбранным блоком. nesco писал(а): И всеравно придется на кошках тренироваться. Дал пример: http://dev.hiasm.com/xf/topic.php?p=59108#P59108 [size=-2]------ Добавлено в 17:18 tsdima писал(а): Dilma-е скоро надоест это, и он сделает block.push(new_selected) block.pop()не только это... Видимо придется делать расширенный набор методов по работе с блоками таких как: - Push - Pop - PopAndDelCur(удаляет текущий блок и востанавливает сохраненный) - PopCopyAndDelete(копирует текущий блок в указанный, затем удаляет текущий и востанавливает сохраненный) - Move(копирует блок и удаляет его сразу) - и т.д... |
|||
карма: 27 |
|