"Сад камней" или Тайны LCL (+ попытки улучшения )

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

"Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Alex2013 » 24.04.2019 11:08:32

Изображение

В разный темах на этом форуме постоянно возникает спонтанное обсуждение внутренней архитектуры и всевозможных особенностей и загадок библиотеки классов LCL. Подумал что не плохо-бы вынести это обсуждение в отдельную тему .

Добавлено спустя 17 минут 10 секунд:
"Направления удара" >>>
1 Графическая подсистема ( Canvas VS RawImage )
2 Кодеэкономия (LCL VS LLCL & KOL )
3 Конструирование программ : Другой подход (LCL VS Hiasm & Dragon )
4 Доступ к данным (LCL & БД)
5 Веб-программирование и LCL
Alex2013
энтузиаст
 
Сообщения: 1377
Зарегистрирован: 03.04.2013 11:59:44

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Лекс Айрин » 24.04.2019 13:08:58

К сожалению, это намного более долгий процесс, чем первоначальное написание кода. Так как это живой проект, то нужно обеспечить наследственность, поэтому структурную объектную схему трогать нельзя. Или делать это очень аккуратно. Перед тем как что-то выпиливать нужно сначала подготовить замену. И не все можно вот так просто взять и резко поменять.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Alex2013 » 25.04.2019 04:37:55

1 Можно сделать что-то вроде LLCL (То есть библиотеку классов близкую по смыслу но не полностью совпадающую с LCL в деталях )
2 Можно сделать улучшенные аналоги отдельных структур (Например Сanvas.FastPiхеls[]).
3 По конструированию : Можно сделать "зеркальные классы" с режимом редактирования "алгоритмической схемы" вместо обычного редактора форм
( В принципе мы ведь кидаем на формы разные Таймеры и Диалоги так что такой вариант сборки уже практически есть )
Работать должно например так : "зеркальные классы" кидаем на "ложную форму" конструктора алгоритма, а при сборке в проект автоматом дописываются обычные элементы и генерируется код.
Зы
Кстати что там в Лазарусе 2.0 с поддержкой веб приложений (Пытался разобрать примеры... но пока что не очень успешно )
Alex2013
энтузиаст
 
Сообщения: 1377
Зарегистрирован: 03.04.2013 11:59:44

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Лекс Айрин » 25.04.2019 05:45:41

Alex2013, пойми, если ты, в рамках одного проекта пытаешься строить альтернативную структуру, то ты придешь в тупик. Дело в том, что начинать надо не сверху, а снизу. Со структур невизуальных. Но это очень тяжело, так как нужно ещё соблюдать совместимость.
Твоя проблема с pixels в том, что ты используешь ее не для того, что нужно. С ней надо работать как с SVN, считал, поработал, сохранил.
Этак ты вообще придешь к визуальному редактору. Формошлепство в лазарусе заделано очень хорошо, но переход к полностью визуальному редактору боюсь будет достаточно тяжёлым. Дело в том, что это требует иной идеологии.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Снег Север » 25.04.2019 06:48:15

Alex2013, не вижу смысла. Вам надо нечто вроде FireMonkey (FMX) в Делфи. Ну так возьмите исходники версии до прихватизации кода (например - из тифона) и допилите. Вот в этом будет смысл.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 1925
Зарегистрирован: 27.11.2007 16:14:47

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Alex2013 » 25.04.2019 11:32:55

Снег Север писал(а):Alex2013, не вижу смысла. Вам надо нечто вроде FireMonkey (FMX) в Делфи. Ну так возьмите исходники версии до прихватизации кода (например - из тифона) и допилите. Вот в этом будет смысл.

Меня кстати тоже пока почти все устраивает ... ( я уже попал во "вторую зону комфорта" найдя для себя решения значительной части "проблем первого уровня" но вспоминая сколько сил на это ушло есть мысль "помочь начинающим" ) Хотя за ссылку на FireMonkey (FMX) спасибо ! "Буду посмотреть !"

Единственная действительно интересная вещь это "конструктор алгоритмов ". Несколько лет увлекался ХайАсмом и довольно полотно проникся его идеями.
Но у этой разработки среды есть один, но на мой взгляд достаточно важный не достаток: там идет попытка полностью заменить обычное кодирование "схемотехническим подходом".(что часто убивает математику(накручивая целые "лабиринты" на совершено ерундовых формулах и матметодах ) и вообще любой "кусок мяса" нужный по ходу дела однократно ) Да в том числе и благодаря моим усильям и долгому капанью на мозги автору ХайАсма возможность прямой вставки кода там теперь как-бы "почти есть". Но именно что почти(из за разной степени неудобства "костылей" которых эта возможность покоится ). + совершенно нет возможности править код генерируемый "по схеме" (по причине его почти полной нечитаемости ) .

Добавлено спустя 54 минуты 6 секунд:
Лекс Айрин писал(а): Формошлепство в лазарусе заделано очень хорошо, но переход к полностью визуальному редактору боюсь будет достаточно тяжёлым. Дело в том, что это требует иной идеологии.

К "Формошлепству" к "конструктору алгоритмов " действительно имеет очень отделенное касательство.... "Сила ХайАсма" не в формах и он точно плохая замена в кодировании "мяса", но возможность быстро и наглядно лепить логику СВЯЗЕЙ между классами дорогого стоит! :idea:

Посмотри на любую программу написанную с применением LCL до 90% кода отставляю настройки классов и последовательный вызов их методов по разным событиям...Если применить "идеологию ХайАсм-а" то надобность делать эту совершенно рутинную работу на 80% уменьшится, а ход алгоритма "станет прозрачным как слеза младенца"...

Сам по себе "редактор связей" вполне можно запихнуть в Лазарус используя только стандартные методы доступные в механизме поддержки компонент и редакторе форм .
Ведь код рисующий "прототипы элементов формы" по сути НИЧЕМ не ограничен ... тоже самое можно сказать и о кодогенерации . (Как я уже сказал отличный пример подобного подхода показывает сама возможность вставлять на форму разные "невизуальные" (или не имеющие наглядного представления непосредственно на форме ) компоненты.)
Alex2013
энтузиаст
 
Сообщения: 1377
Зарегистрирован: 03.04.2013 11:59:44

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Лекс Айрин » 25.04.2019 13:43:38

Alex2013, если честно, то силу то хайАсма я и не ощутил. Слишком у меня было мало времени чтобы завершить всю революционность подхода. Слишком уж он революционный.
Дело в том, что объектной ориентированный подход и предполагает создавать надстройки над уже существующим кодом. Но ты не особо над этим пугайся -- большая часть этих надстроек виртуальна и существует только в исходном коде.
Редактор связей в лазарусе уже есть, но на уровне модулей. А надо вывернуть идеологию, чтобы все эти связи были видны на любом подходящем уровне. Думаю, на уровне объектов достаточно. Только вряд ли это кому на данном этапе нужно.
Ах да, ещё нужно будет обеспечить синхронизацию кода и визуального представления.
Возможность. Вставки невизуальных компонент на форму это мелочь, которая обеспечивается поддержкой специальных директив в модуле. Так называемой регистрацией модулей, которая, кстати, требует перекомпиляции всей системы.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Vadim » 25.04.2019 15:17:46

Ещё можно найти давно заброшенный проект VISG и попробовать сделать его кроссплатформенным. У нас его разработчик появлялся, но очень давно. Формошлёпство визуальное, а после генерится код на основе скриптов. Скрипты очень похожи на фортрановские. :-D В исходном виде генерит только WinAPI. Если в инете не найдёте, пишите сюжа, я выложу архивчик.
Vadim
долгожитель
 
Сообщения: 3653
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Alex2013 » 25.04.2019 15:35:02

Лекс Айрин писал(а):Редактор связей в лазарусе уже есть, но на уровне модулей.

Ну да + инспектор объектов показывает иерархию классов . Только это совсем другое .
Представь, что вместо обычной формы ты видишь в окне редактора форм (При этом обычные формы тоже на месте ) что-то похожее на эту картинку - что в этом нерального?
ИзображениеИзображение
(Непонятно ? Это только так кажется ! В хайасме в все "контактные точки" снабжены всплывающими хинтами + в закладке "свойства" притаился обычный инспектор объектов ... А скрытые "разрывом" связи можно увидеть просто кликнув на край разрыва (да и ярлычки есть ) )
Лекс Айрин писал(а): требует перекомпиляции всей системы.

Не пугайся, но в лазарусе любая установка компонентов "требует перекомпиляции всей системы" :idea:
Alex2013
энтузиаст
 
Сообщения: 1377
Зарегистрирован: 03.04.2013 11:59:44

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Лекс Айрин » 25.04.2019 15:51:25

Alex2013, а теперь зацени весь комизм ситуации.... ХайАсм показывает не все возможные линии соединений. И это проблема.
Перекомпиляции среды это уже привычное зло.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Alex2013 » 25.04.2019 15:55:25

Vadim писал(а):проект VISG

http://www.freepascal.ru/forum/viewtopic.php?t=2551

Добавлено спустя 8 минут 17 секунд:
Лекс Айрин писал(а):Alex2013, а теперь зацени весь комизм ситуации.... ХайАсм показывает не все возможные линии соединений. И это проблема.

В чем проблема ? :shock: (Если не знал у элементов ХйаАсма есть скрытые точки(чтобы не захламлять элемент ненужными/(редко используемыми) "контактами" ) там могут быть запрятаны абсолютно ВСЕ полезные методы и входные / выходные потоки данных )
Изображение
А как и что там меняется на картинке в редакторе формы целиком на совести кода рисующего элемент в "Дизайн тайм"(В этом лазарус даже несколько круче ХайАсма - там тоже можно что-то нестандартное нарисовать вместо "микросхемы" но делать это куда как сложней )
Alex2013
энтузиаст
 
Сообщения: 1377
Зарегистрирован: 03.04.2013 11:59:44

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Лекс Айрин » 25.04.2019 17:16:29

Alex2013, далеко не все. Только основные. И не забывай, что Лазарус при всем этом ещё пишет код, который сразу можно проверить. Так сказать не отходя от кассы. В ХайАсме я через пять минут запутался. А это все же показатель.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Alex2013 » 25.04.2019 22:14:20

Лекс Айрин писал(а):Alex2013, далеко не все. Только основные. И не забывай, что Лазарус при всем этом ещё пишет код, который сразу можно проверить. Так сказать не отходя от кассы. В ХайАсме я через пять минут запутался. А это все же показатель.

1 Но ничего не мешает добавить вообще ВСЕ !
2 Так ХайАсм пишет код который как минимум компилятор проверяет . (А вообще сделать код понятным вопрос "технической эстетики " автора среды... ХайАсм делался как "случайное развитее программы разводки электронных плат " типа PCad-а можешь представить что там "под крышечкой" :wink: )
3 Сожалею тебе малость не повезло с временем знакомства сейчас среда малость страдает "перенасыщением функциональностью". ( Советую скачать "альтернативный билд " и пройтись по примерам там их сейчас куча )
P.s.
Далекие 2004-2006 годы мои первые пробы пера в ХайАсме ...(Интересно хоть что-то еще работает? )
(это третий или четвертый черновик-сайта от моего попадания в "Повсеместно Протянутую Паутину"(www) давно заброшен и несколько раз восстановлен с не менее заброшенной файлопомойки... так что не судите строго )
http://alexkir.narod.ru/Raznoe.html
http://alexkir.narod.ru/Videon.html
http://alexkir.narod.ru/GrafKor.htm

:arrow: http://alexkir.narod.ru/Soft/CalcMP.rar Упс ! Нет реально 18к !(Сам уже с трудом верю что такое возможно.. ) Работает (картинка скина правда отдельно лежит ) ... :idea:
Alex2013
энтузиаст
 
Сообщения: 1377
Зарегистрирован: 03.04.2013 11:59:44

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Лекс Айрин » 26.04.2019 07:55:11

Alex2013, конечно ничего. Но это не отменяет того факта, что у него вообще-то и другие недостатки есть. И их исправление очень напряжно.
Дело в самой идеологии.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: "Сад камней" или Тайны LCL (+ попытки улучшения )

Сообщение Alex2013 » 26.04.2019 19:17:09

Лекс Айрин писал(а):Alex2013, конечно ничего. Но это не отменяет того факта, что у него вообще-то и другие недостатки есть. И их исправление очень напряжно.
Дело в самой идеологии.

А вот это интересно ! Я если честно уже не могу смотреть на ХайАсм не предвзято (вложил много сил в изучение и попытки поддержать и улучшить ) ...

Но что не так с идеологией ? Ведь это по сути почти что " Схема алгоритма " с поправкой на реалии и традиции ООП и стандартного почти для всех современных ЯВУ редактора форм. Возможно ты просто не вник основные механизмы и методики ХайАсм-а .
Некоторые вещи там банально не очевидны особенно для программистов имеющих богатый опыт "классического программирования" . :idea:

Да при более плотном использовании есть реальные недостатки СРЕДЫ но с идеологией там (ИМХО) все отлично !

Кстати при реальной необходимости обходимости "новые точки" добавляются "на раз два"(Причем несколькими разными способами ).....
Alex2013
энтузиаст
 
Сообщения: 1377
Зарегистрирован: 03.04.2013 11:59:44

След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 1

Рейтинг@Mail.ru