Diesel Pascal

Проектирование и разработка идеального средства программирования.

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

Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

Я посмотрел парсеры в SynEdit и пришел к выводу, что UTF8 там нет только потому, что тому, кто эти парсеры писал, она была не нужна. Ну так исторически сложилось.
Но на первый взгляд технически перевести парсер на uf8 проблем нет, проблема как всегда одна - КТО СДЕЛАЕТ?
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

Kemet писал(а):Я посмотрел парсеры в SynEdit и пришел к выводу, что UTF8 там нет только потому, что тому, кто эти парсеры писал, она была не нужна. Ну так исторически сложилось.
Но на первый взгляд технически перевести парсер на uf8 проблем нет, проблема как всегда одна - КТО СДЕЛАЕТ?

Я к такому-же выводу пришел.
Я какое-то время посвятил этому вопросу, но по быстрому, на вскидку проблему решить не удалось, поэтому оставил до лучших времен, пока некогда, добавил подсветку для DieselPascal и успокоился...

Но это ерунда, это со временем все можно победить, есть ещё другая проблема. На практике использовать русскую транскрипцию можно только в случае, если удастся полностью все русифицировать, чтобы в момент набора кода, не переключаться в русский-английский, иначе это выносит мозг. Тут проблема заключается в том, что имена компонентов FCL и LCL понимает только латинские, т.е. кнопке имя - "Кнопка1" не присвоишь, будет только Button1. Поэтому с практическим применением без русских имен компонентов - большой вопрос...
Последний раз редактировалось *Rik* 09.04.2015 18:19:31, всего редактировалось 1 раз.
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

В русификации компонентов/процедур и т.п. я не вижу особых проблем - делал когда-то для Дельфи свой интерпретатор, там был словарь псевдонимов, причем даже object inspector с русскими именами работал.

Добавлено спустя 9 часов 27 минут 57 секунд:
Юра, можно интегрировать fpspreadsheet и kcontrols из lazatrus_ccr, ну и до кучи Visual Synapse подтянуть.
А еще, а еще, саблю и будёновку ) - портировать с Дельфи и интегрировать библиотеку ObjectView
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

Kemet писал(а):Юра, можно интегрировать fpspreadsheet и kcontrols из lazatrus_ccr, ну и до кучи Visual Synapse подтянуть.
А еще, а еще, саблю и будёновку ) - портировать с Дельфи и интегрировать библиотеку ObjectView

Уп-фф..
У меня на работе полный ахтунг... Этот год вообще сумасшедший был.. Портировать скорее всего нет, просто по причине нехватки времени.

То что есть под Lazarus, можно, если поможете.. Процесс интеграции компонентов в движок ни как не автоматизирован, надо все public методы и свойства прописывать, рутины много. Если есть возможность работы с исходным кодом, я могу начать, Вы закончите... Либо ждать пока у меня работа в "лес не убежит", как по свободней будет можно заняться...

ObjectView - штука не плохая для создания аналога 1С. Многие такую штуку хотят, я подумываю о написании нечто подобного (хотя для меня она бесполезна, я предпочитаю без промежуточной прослойки юзать базу)...
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

Небольшая вводная по дизелю..
http://youtu.be/EES8aXxwAoI
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

Выложил новую сборку.
Добавлена возможность шифрования приложения. Для шифрования приложения в дизайнере (CrossDesigner) в меню выбрать Файл->Зашифровать приложение. Откроется диалог выбора приложения (шифруется не то приложение, которое открыто в дизайнере, а то что будет указано через диалог выбора файла). После выбора приложения, оно будет зашифровано, при этом исходный файл остается не тронутым, рядом будет создан файл с тем-же именем и расширением .sl9". Зашифрованное приложение в дизайнер загрузить уже не получится, его можно только отправить на выполнение. При сборке из исходного кода, вы можете добавить собственную функцию шифрования и дешифрования, смотрите модуль CodeUtils.pas, он подключен в проекты CrossMachine и CrossDesigner. В модуле CodeUtils есть 2 переменные OnEncodeStr и OnDecodeStr - указатели на пользовательские методы шифрования строки, назначьте на эти переменные собственные методы.
Кроме защиты от внесения несанкционированных изменений, эта функция может быть полезна для организации коммерческого производства ПО на базе DiselPascal.
ogorodov
новенький
Сообщения: 37
Зарегистрирован: 22.10.2009 11:32:07

Сообщение ogorodov »

Привет *Rik*
А ты в первоисточник IBX не посматриваеш ... там вроде новые компоненты появились http://www.mwasoftware.co.uk/downloads/category/2-ibx в дополнение к уже имеющимся ... интересно твое мнение
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

ogorodov писал(а):Привет *Rik*
А ты в первоисточник IBX не посматриваеш ... там вроде новые компоненты появились http://www.mwasoftware.co.uk/downloads/category/2-ibx в дополнение к уже имеющимся ... интересно твое мнение

Новые компоненты у них - это визуальные контролы, они мне не интересны. Они хоть и отдельным пакетом идут, но в кучу к IBX они их зря положили. SQL парсер у них какой-то появился, внутри TSelectSQLParser, только для Select запросов, как они его применяют не разбирался, у меня то-же есть парсер, но я его использую для разбора выражений EXECUTE BLOCKE и ORDER BY в SELECT для модификации, чтобы метод OrderByField работал.. Функционал у них не поменялся, в основном фиксят чего-то периодически. Я что нашел, в прошлом годе пофиксил, всё вроде работает.
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

А IBTable работает (без программных манипуляций с транзакциями и т.п.)?
Дизель-Паскаль 1.6.2.
IBTransaction1 -> IBDatabase1 <- IBTable1 <- DataSource1 <- DBGrid1
Пытаюсь отредактировать запись, при попытке отправить изменения

1. При использовании одной транзакции:
Operation cannot be performed on an inactive dataset
Данные в базу коммитятся, а IBTable1.Active становиться False.

2. При раздельных транзакциях:
Transaction is not active
Данные не отправляются, IBTable1 активна, но изменения можно только отменить.

P.S. При раздельных транзакциях, даже если вручную в Object Inspector выставить IBWriteTransaction.Active в True, при запуске она сбрасывается в False.
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

v-t-l писал(а):А IBTable работает (без программных манипуляций с транзакциями и т.п.)?
Дизель-Паскаль 1.6.2.
IBTransaction1 -> IBDatabase1 <- IBTable1 <- DataSource1 <- DBGrid1
Пытаюсь отредактировать запись, при попытке отправить изменения

1. При использовании одной транзакции:
Operation cannot be performed on an inactive dataset
Данные в базу коммитятся, а IBTable1.Active становиться False.

2. При раздельных транзакциях:
Transaction is not active
Данные не отправляются, IBTable1 активна, но изменения можно только отменить.

P.S. При раздельных транзакциях, даже если вручную в Object Inspector выставить IBWriteTransaction.Active в True, при запуске она сбрасывается в False.


IBTable пока не используйте...
IBTable возможно совсем уберу, - это зло..
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

IBTable возможно совсем уберу, - это зло..

Зато удобное :) - не надо всякие скюэли заполнять.
IBTable вполне работает, если в рантайме активировать UpdateTransaction.
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

v-t-l писал(а):
IBTable возможно совсем уберу, - это зло..

Зато удобное :) - не надо всякие скюэли заполнять.
IBTable вполне работает, если в рантайме активировать UpdateTransaction.

UpdateTransaction не стоит долго держать открытой. Не завершенная пишущая транзакция будет удерживать версии записей.

Обновитесь, должно работать:
ibx 2.2.5
Дизель-паскаль 1.6.3
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Не, как и было. :(

Добавлено спустя 46 минут 52 секунды:
Может я что не так делаю?
Простейший тестовый проект во вложении.
База любая, таблица любая.
Вложения
testfbd2.lm9.7z
(1.03 КБ) 1013 скачиваний
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

v-t-l писал(а):Не, как и было. :(

Добавлено спустя 46 минут 52 секунды:
Может я что не так делаю?
Простейший тестовый проект во вложении.
База любая, таблица любая.


Я ваш проект поправил (см. вложение). Эти компоненты рассчитаны на работу с раздельными транзакциями, читающей и пишущей, я добавил пишущую, установил параметры. Про использование раздельных транзакций можно прочитать здесь:
http://www.devrace.com/ru/fibplus/articles/2169.php

ps.
В проекте исправьте подключение к базе данных в компоненте IBDatabase1, я его затер.
Вложения
testfbd2.7z
(1.52 КБ) 1016 скачиваний
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Спасибо.
Ответить