Padre_MortiusДело в том, что на Delphi IDE в принципе не имеет никакого функционала, как и на FreePascal.
Просто все началось очень банально, сидел я как то сидел, кодил на PHP кодил и надоело. Открыл интернет браузер и скачал новую делфю 2006 (ака 10) и дюжа жутко она мне понравилась.
И тут мне пришла в голову шальная мысль, а не повторить то мне её на ней же самой. То есть редактор. Покопал инфу в интернете, покопал, и стал делать.
Всё бы ничего, но вот дизайнер форм оказался(на том этапе) для меня загвоздкой. Долго я её решал (недели три-четыре) и решил-разобрался.
Сам по себе ДФ бестолковая вещь, и начал я придумывать куда бы его приспособить. Из этого вышел визуальный редактор ресурсов (*.res), но ресурсы содержат картинки и иконки и курсоры,
поэтому дальше родился редактор иконок. Естественно всё это рождалось недоношеным, так как только я разбирался в первичной проблеме (формат *.res файла) я редактор иконок-курсоров-битмапов забрасывал и шел дальше. Поэтому это не одна IDE на делфи, это куча базовых IDE в которых есть редактор ресурсов(с доделанным дизайнером форм и редактором диалоговых окон), редактор bmp, jpg и т.д. файлов. Короче море IDE в которых я по одному что то прикручивал. Оно как Инспектор объектов, Инспектор проекта, Панель компонентов и т.д...
Дело в том, что целью сделать что то осмысленное у меня нет, не было и наверное не будет. Цель для меня всего этого просто банально УЗНАТЬ как оно работает.
Естественно у меня куча компонентов написанных мною, от всяких HEX редакторов и PE вьюверов, оканчивая редактором кода с подсветкой и сворачиванием (фолдингом), которые очень маленькие, стараюсь сделать сложный компонент до 5000 строк. Вот как пример пэйдж контрола в FreePascal. Не нравится мне стандартный лазаря пэйджконтрол, нарисовал свой (чего только стоил мне UPDOWN_CLASS
) но мне ж было интересно отследить мышку вне контрола. В винде пришлось использовать сабклассинг с передачей событий основному окну (жопа полная, так же и работает гы...)
В линуксе конечно можно взять отрисовку и отслеживание позиции мышки (я так предполагаю)... но не в этом дело.
Потом меня осенило, а почему бы не прикрутить какой нибудь компилятор раз есть редактор кода и редактор ресурсов. Прикрутил простой ассемблер (причём не бельмеса в нем не понимая).
Ну вот так постепенно, изучая разные редакторы, эмуляторы и т.д. делал IDE на делфи. Затем появился вменябельный лазарус и компилятор к нему (правда такой же как и библейский герой, как тока шо из гроба с судорогами и мертвенной бледностью, плюс несущий не себе надгробную пятитонную плиту для отладчика) Ну и попробывал на нём IDE состряпать максимально простую. В добавок увлёкся Оберонами и их синтаксисом и дюжа мне понравился активный оберон, именно по синтаксису а не по концепциям, их я до сих пор не знаю, разбираться не охота пока что
.
Так что, если кому то, что то интересно из велосипедостроения, знайте, большую часть велосипедов я уже написал на Delphi, сейчас перешол на лазаря (недавно перекатал и исправил эмулятор BK 0010 и ZX Spectrum, так как интересно было посмотреть как это всё работает) поэтому не стесняйтесь и спрашивайте кому что надо, я всегда рад выложить исходный код в свободный доступ для пользы дела!
Ну и естественно если кто то озаботится интересной головоломкой (типа а слабо написать 3D редактор на паскале с прозрачным стеклом в примитивах) пишите, если тема интересная озаботимся вместе!!!
ЗЫ...
Забыл добавить, IDE на FreePascal и Delphi писал не дабы прославиться (???
), а дабы читать исходный код на Обероне 2 (AO и O7 и иже с ними), искать поиском функции и процедуры, ну и ваще для красоты глаза, хотя мои цвета и дизайн может кого то удручать и нервировать, уж не обессудте...
KemetДружищще, как я тебя понимаю по поводу того, как написан FPC
я его на паскаль переписывал и то чуть не чокнулся, а ты его на обероне лепил... Тебе уже памятник надо поставить!!!
К стати вот что бы докинуть в эту IDE FreePascal, но убрать половину срани оттуда, немножко переписать сканер и парсер, об этом можно подумать. Плюс доработать компилер до состояния работы с динамической загрузкой *.ppu файлов (или какие там юниты?) что бы развить плагинно-компонентную систему без перекомпиляции IDE - тут можно подумать!!!
можно в варианте GPCP, а не BBCB
Интересно почему. Надо глянуть GPCP повнимательнее, а то я ток краем глаза.