Дизель-паскальДизель-паскаль - это кросс платформенная среда разработки с открытым кодом на FreePascal/Lazarus. Интерфейс и функционал среды аналогичен интерфейсу Lazarus, имеет встроенные интерпретаторы FreePascal и DieselPascal. Оба языка поддерживают ООП. Можно объявлять классы, поддерживается наследование и полиморфизм. Встроенный интерпретатор FreePascal довольно тесно совместим с оригиналом за исключением некоторых нюансов, касающихся перегрузки процедур и функций и инициализации массивов. Приложения дизель-паскаль представляют из себя XML файл содержащий ресурсы (формы, фреймы, модули данных) и код для интерпретатора Free/Diesel Pascal. Приложения выполняются виртуальной машиной, компиляция кода во внутренний формат происходит при запуске приложения (компиляция на лету), поэтому приложения Дизель паскаль будут работать без перекомпиляции и переделок на любой платформе, под которую удастся собрать сам Дизель-паскаль. Сама система задумана как дополнение к Lazarus, предназначена для разработки бизнес программ либо других программ автоматизации какой либо деятельности, но подразумевающей немного иной подход в построении и выполнении приложения. Дизайнер и машина Дизель-паскаль могут загружать приложения как локально, так и по протоколу http, что дает дополнительное преимущество при многопользовательской работе.
Дизель-сервер - это простой http сервер приспособленный для отдачи приложений Дизель-паскаль и других файлов используемых приложением. При многопользовательской работе приложение (XML файл) может быть размещен либо в общей папке на файловом сервере, что может оказаться не совсем удобным, либо раздаваться по протоколу http. Чтобы не разворачивать полноценный HTTP сервер, для этих целей, можно воспользоваться Дизель-сервером. (Приложение пока в стадии тестирования и имеет GUI, поэтому на Unix системах без графической среды не запустится).
Менеджер приложений - что-то вроде лаунчера в 1С. Позволяет создать список приложений и запускать их на выполнение либо загружать в дизайнер.
В процессе работы над проектом возникли некоторые компоненты и модификации:
Компоненты VisualTech - поставляются в комплекте с Дизель-паскалем. Включают компоненты: дизайнер форм, xDBGrid - сетка с измененными оформлением и свойствами, умеет отображать 2 поля в одном столбце, может выравнивать ширину колонок в процентном отношении к общей ширине сетки. Значения ячеек можно копировать в буфер обмена по Ctrl + C, даже когда стоит режим выделения всей строки, курсор подсвечивающий активную ячейку всегда существует (на изображении ниже он заметен в столбце Доп) и им можно управлять. В столбцах можно выводить иконку из TImageList в зависимости от значения поля.
Другие различные компоненты, в основном - поля с кнопками и лэйблами.
Компонет TxDBF - клон TDBF, адаптированный для работы с кодовыми страницами cp866 и 1251. Поставляется с Дизель-паскалем.
Компонеты IBX - дорабтотка IBX для работы в рамках 2х транзакций, по типу FIBPlus. В TIBDataSet добавлена поддержка Returning Field, добавлена поддержка эмуляции Boolean полей, автотримирование строковых значений (свойство AutoTrim), добавлены свойства AutoStartTransaction и AutoCommit. Убран старый баг в TIBStoredProc (
http://www.ibase.ru/devinfo/ibstp.htm).
В саму среду добавлена поддержка Synapse, TZipper, TUnZipper(TxZipper, TxUnZipper), поэтому из Дизель-паскаль будет доступ к HTTP, FTP, Pop, Smtp, архивам.
Все компоненты входят в поставку DieselPascal.
CrossDesigner, CrossMashine, DManager - проекты реализующие дизайнер, машину и менеджер, все 3 находятся в папке CrossDesigner.
В комплекте с системой есть папка exe, в ней откомпилированные версии под Win и Linux, но в них есть косяк, если не хочется возиться со сборкой чтобы посмотреть, их использовать можно, но для этого в своей пользовательской папке создайте папку DieselPascal (касается и Win и Linux) - там хранятся некоторые настройки, баг заключается в том, что программа её не создает автоматом. Исходники исправлены, если собрать из исходников бага не будет.
После первого запуска CrossDesigner расположите элементы программы - главную форму, инспектор, редактор кода и менеджер проекта - так как вам удобна и задайте их оптимальный размер, затем выполните Опции->Сохранить расположение элементов.
http://www.visual-t.ru/download.htmlps.
Пока ещё не прикручен генератор отчетов, в остальном всё работоспособно, использую DieselPascal пару месяцев. Из все коммерческих компонент у меня остался только FastReport, надеюсь со временем допилить LazReport и будет полное счастье...
Приложение Дизель-паскаля запущенное под Linux
Простенькие примеры:
http://visual-t.ru/files/Fractals.lm9http://visual-t.ru/files/Excel.lm9 (использует OLE, поэтому работать будет только под Windows)
http://visual-t.ru/files/OpenOffice.lm9 (использует OLE, поэтому работать будет только под Windows)
Система может загружать приложения по протоколу HTTP, поэтому адреса ссылок можете добавить в DManager или в дизайнере выполните Файл->Открыть URL и скопируйте ссылку туда (В дизайнере приложения загруженные по HTTP будут только для чтения, чтобы их можно было править, сохраните их локально, для этого в дизайнере выполните Файл->Сохранить проект)
http://visual-t.ru/files/Tetris.lm9 - тетрис малость проблемный, работает хорошо, закрывается плохо, если запускать локально, то пользоваться можно...
Дизайнер Дизель-паскаляВ редакторе кода работает MouseLink. Удерживая Ctrl при наведении на идентификатор объявленный в программе, он подсвечивается, при нажатии на него мышью - переход к объявлению идентификатора. Для методов - переход возможен от реализации к объявлению и наоборот.
Ctrl + Shift + C в объявлении метода - создает его реализацию (только 1 выбранный метод, курсор должен находится в имени метода).
Ctrl + Shift + Стрелка вверх - переход между объявлением и реализацией метода.
Есть отладчик, можно ставить точки останова и выполнять программу по шагам (F8).
Закладки ставятся для каждого модуля не зависимо (пока, потом будет исправлено), т.е. в каждом модуле можно использовать 10 закладок и переход по закладке возможен только внутри модуля. Ctrl + Shift + [0..9] - поставить закладку.
Контекстное меню в редакторе отсутствует, поэтому управление только быстрыми кнопками, как описано выше.
Ctrl + [0..9] - перейти по закладке
Модули можно объявлять по русски, но вот в реакторе они будут отображаться как символы (другой цвет), пока не победил..
ps:
Пардон, но сайт мой похерили хакеры, поэтому пока так как есть..
И кому я понадобился, и так всё бесплатно раздаю, и посещаемость почти нулевая...