Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26113
Рейтинг: 2126
#61: 2007-06-20 15:37:33 ЛС | профиль | цитата
Таак. Еще вопрос. Для чего вот эти методы block.inclvl() и block.declvl()?
карма: 22

0
Ответов: 2125
Рейтинг: 159
#62: 2007-06-20 15:39:17 ЛС | профиль | цитата
nesco писал(а):
почти все можно перенести из предыдущего пакета

Не надо почти всё. Контролы - пожалуйста, а вот циклы,хабы,логику и т.п. лучше переписать заново в новом стиле.

[size=-2]------ Добавлено в 15:39
nesco писал(а):
Для чего вот эти методы

Для красоты, видимо Отступы это.
карма: 1

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#63: 2007-06-20 15:41:23 ЛС | профиль | цитата
tsdima писал(а):
а нельзя ли как-нибудь автоматом нагенерить обёрток для существующих компонент

Да, действительно. Когда это уже будет, то и оптимизировать проще на рабочих компонентах.

[size=-2]------ Добавлено в 15:41
tsdima писал(а):
Контролы - пожалуйста

Так я про самое объемное и говорю. Остальное код-то небольшой, можно и так переписать.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#64: 2007-06-20 15:48:01 ЛС | профиль | цитата
nesco писал(а):
Да, действительно. Когда это уже будет, то и оптимизировать проще на рабочих компонентах.

Дулю вам с маком.
Большая половина написана в стиле "а у нас нет возможности написать более эффективный код"

Разрешение альтернативы ReadXXX в Дельфи-2 делается в Design-Time. В Дельфи-1 - в RunTime
Вариантность типа (TData - грубо говоря) должна быть разрешена в Desing-Time
Мало

Если, конечно говорить об эффективности кодов.
А если не говорить - разговор становится сразу беспредметным и неуместным
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#65: 2007-06-20 15:49:51 ЛС | профиль | цитата
tsdima писал(а):
Делаешь StringTable.pas, а к нему - обёртку для HiAsm в вышеуказанном стиле hiStringTable.hws

именно так для объемных компонент и нужно делать.

Нагенерить автоматом видимо можно. Однако это пожелание наперед. Сейчас структура работы с WIN элементами в рамках поточной кодогенерации только вырисовывается. Когда на примере нескольких элементов будет ясно видна аналогия, тогда и можно будет говорить об автоматизации. Например, сейчас полностью автоматически можно генерировать компонент для любой ф-ции вида:
function func(<params>):<type>[/code]
со всеми сопутствующими точками и наполнением
карма: 27
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#66: 2007-06-20 15:51:10 ЛС | профиль | цитата
Galkov, а ты думал над портированием методов MT в новую технологию. Тут как-то вопрос решается?
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#67: 2007-06-20 16:00:38 ЛС | профиль | цитата
nesco писал(а):
а ты думал над портированием методов MT в новую технологию.

тут с этим несколько иначе будет. Скорей всего будет некое разделение на МТ в Design-Time и MT в Run-Time. Как я уже говорил МТ в Design-Time очень хорошо перекладывается на передачу более одного параметра между ф-циями и разрешается на 100% эффективно еще до генерации кода.
карма: 27
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#68: 2007-06-20 16:11:15 ЛС | профиль | цитата
Dilma, все же, с чем связан баг, который я привел несколькими постами выше?
С Win-элементами плохо только то, что на них нельзя посмотреть на форме, которой тоже не видно.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#69: 2007-06-20 16:26:33 ЛС | профиль | цитата
nesco, ты чего от вопросов уходишь-то

Ты прошелся по конкретным hws для конкретного примера, чтобы у тебя получился файл frm.pas
Или нет

Не поверю, что до того как это будет сделано - будет достигнуто понимание ПРОИСХОДЯЩЕГО
карма: 9

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#70: 2007-06-20 16:41:25 ЛС | профиль | цитата
Galkov писал(а):
Ты прошелся по конкретным hws для конкретного примера

Да вот смотрю и по ходу натыкаюсь на вопросы. Не на все предыдущие вопросы получил еще ответ. Не понял, например, для чего проверяется переменная на наличие?
А вместо frm.pas я поставил "компилить в exe" и тут же получил вышеописанную багу.

[size=-2]------ Добавлено в 16:35
Еще не фига не понял, для чего постоянно во всех блоках объявляется локальная переменная old и еще похожие пременные?

[size=-2]------ Добавлено в 16:41
И всеравно придется на кошках тренироваться. Домой прийду попробую какую-нибудь бяку состряпать, авось получится. Пока не наткнешься на камень в темноте (хорошо не на мину), его не обойдешь. Практику еще никто не отменял.
карма: 22

0
Ответов: 2125
Рейтинг: 159
#71: 2007-06-20 16:46:23 ЛС | профиль | цитата
nesco писал(а):
для чего постоянно во всех блоках объявляется локальная переменная old

Есть такое понятие, как текущий выбранный блок, куда идёт вывод текста программы. Если ты хочешь что-то вывести в другой блок, его надо выбрать, но после надо восстановить тот, который был. Dilma-е скоро надоест это, и он сделает block.push(new_selected) block.pop()
карма: 1

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#72: 2007-06-20 16:48:25 ЛС | профиль | цитата
tsdima писал(а):
block.push(new_selected) block.pop()

Стековая организация блоков, я правильно понял?
карма: 22

0
Ответов: 2125
Рейтинг: 159
#73: 2007-06-20 16:49:54 ЛС | профиль | цитата
Стековая организация номеров существующих блоков
карма: 1

0
Ответов: 9906
Рейтинг: 351
#74: 2007-06-20 17:03:43 ЛС | профиль | цитата
nesco писал(а):
Не на все предыдущие вопросы получил еще ответ. Не понял, например, для чего проверяется переменная на наличие?

Какие
Какая переменная
Как же тебе отвечать после такого

И все-таки, правильнее по-порядку. При этом, отвечающему ясно, что ты понял, а что еще нет.
А прыгать с места на места... не уверен, что так вообще беседа может склеиться...


nesco писал(а):
Практику еще никто не отменял

Частенько под "практикой" понимают метод "тыка".
Так вот: плюнь тому в лицо, кто это вообще Методом назвал. От моего имени.
Тут и отменять ничего не требуется
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#75: 2007-06-20 17:18:18 ЛС | профиль | цитата
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
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)