Но поставить бесплатно исходники steema teechart не получилось, возможно авторы проапгрейдили защиту (активация онлайн). Может быть, стоит купить исходники steema teechart за 600 долларов? Если это возможно в России.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Забыл добавить, может быть ещё вариант:
4) Написать универсальный хелпер к tchart, который в Delphi будет обращаться к одним процедурам, а в Lazarus к другим. По идее, чтобы это работало, нужны какие-то ifdef-ы; как в данном случае в рамках ifdef-а определить, текущий tchart это Delphi компонент или Lazarus-овский?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K>о компоненты tchart в этих средах очень разные.
Все очень просто — ВСЕГДА рисуете графики используя один из прекрасных бесплатных построителей графиков
на HTML-javascript
их много, они прекрасны, работают очень быстро, невероятно быстро, быстрее дельфиского компонента раз в 10
отображают миллионы точек з 1 сек
используют аппаратное ускjрение WebGL
если хотите за деньги — они тоже есть
Ну как подключить к дельфи и лазарю уверен вы знаете знаете
Здравствуйте, Khimik, Вы писали:
K>Здравствуйте, paradok, Вы писали:
P>>Ну как подключить к дельфи и лазарю уверен вы знаете знаете
K>Не знаю, прошу пояснить. Или это троллинг?
Delphi TWebBrowser выполнение JavaScript
в посте описано как в компоненте TWebBrowser выполнить скрипт JavaScript.Для выполнения скрипта потребуются подключить модули MSHTML_TLB, SHDocVw. Модуль SHDocVw идет в комплексе Delphi, а вот модуль MSHTML_TLB нужно экспортировать с Microsoft HTML Object Library. Модуль MSHTML_TLB нужен для определения интерфейса IHTMLDocument2 и выполнения скриптов.
Для получения файла модуля выполним следующие действия:
В Delphi открываем Component -> Import ActiveX Control...
В появившемся окне выбираем Import ActiveX Control, нажимаем Next>>
В списке выбираем "Microsoft HTML Object Library", нажимаем Next>>
Указываем каталог куда положим модуль
Далее на своё усмотрение выбираем создать модуль, добавить его в проект или установить и нажимаем Finish.
Теперь у нас есть все необходимые модули и можно написать код для выполнения скрипта JavaScript.
К модулю где будет реализовываться функция подключаем в uses SHTML_TLB, SHDocVw.
И описываем процедуру.
procedure ExecuteScript(doc: IHTMLDocument2; script: string; language: string);
begin
if doc <> nil then
begin
if doc.parentWindow <> nil then
doc.parentWindow.ExecScript(script, Olevariant(language)) ;
end;
end;
Пример использования данной процедуры.
var
script : string;
begin
//Данный скрипт найдет первый элемент с ID равной = "main" и покажет его тэги;
script := 'var elemMain = document.getElementById("main"); '+
'if (elemMain != null) { alert(elemMain.tagName) ; }';
ExecuteScript(EmbeddedWB1.Document as IHTMLDocument2, script, 'javascript');
end;
Здравствуйте, SаNNy, Вы писали:
SNN>Здравствуйте, paradok, Вы писали:
P>>В Delphi открываем Component -> Import ActiveX Control...
SNN>ActiveX для линукса — это сильно, м-да...
но TWebBrowser работает там? если лазарь не умеет интегрировать в прогу браузер то он полное дерьмо и отстой,
а если умеет то наверняка есть какие-то механизмы обмена данными с внедренным браузером или их можно придумать и реализовать
и что такого делает ваша програ что нельзя ее сделать веб_клиент-серверной?
Re[3]: Кроссплатформенный tchart в Delphi и Lazarus
Здравствуйте, Khimik, Вы писали:
K>Здравствуйте, Tai, Вы писали:
K>>>Пытаюсь портировать свою программу с Delphi на Lazarus
Tai>>С какой целью?
K>Скомпилировать под Linux и Mac.
под мак Дельфи пашет норм. А линукс занимает сотые доли процента и наиг не нужен кроме серверных
оставьте вою маниовщину и несбыточные мечты
Re[4]: Кроссплатформенный tchart в Delphi и Lazarus
Здравствуйте, paradok, Вы писали:
K>>Скомпилировать под Linux и Mac.
P>под мак Дельфи пашет норм. А линукс занимает сотые доли процента и наиг не нужен кроме серверных
Вроде и под Линукс Delphi может (crossvcl или fmxLinux)
Лучше колымить в Гондурасе, чем гондурасить на Колыме.
Re[6]: Кроссплатформенный tchart в Delphi и Lazarus
Здравствуйте, paradok, Вы писали:
P>но TWebBrowser работает там? если лазарь не умеет интегрировать в прогу браузер то он полное дерьмо и отстой, P>а если умеет то наверняка есть какие-то механизмы обмена данными с внедренным браузером или их можно придумать и реализовать
Здравствуйте, Tai, Вы писали:
Tai>Здравствуйте, paradok, Вы писали:
K>>>Скомпилировать под Linux и Mac.
P>>под мак Дельфи пашет норм. А линукс занимает сотые доли процента и наиг не нужен кроме серверных
Tai>Вроде и под Линукс Delphi может (crossvcl или fmxLinux)
ну и супер пупер ява-скрипт гарфики всяко в 100 раз круче любого компонента
вот обзор 10 лучших на хабре https://habr.com/ru/post/457946/
Re[4]: Кроссплатформенный tchart в Delphi и Lazarus
Здравствуйте, paradok, Вы писали:
K>>>>Пытаюсь портировать свою программу с Delphi на Lazarus
Tai>>>С какой целью?
K>>Скомпилировать под Linux и Mac.
P>под мак Дельфи пашет норм. А линукс занимает сотые доли процента и наиг не нужен кроме серверных P>оставьте вою маниовщину и несбыточные мечты
Если не ошибаюсь, во-первых портировать программу с VCL на FMX сложнее, чем с VCL на LCL. Я слышал что FMX глючное, правильно ли я понимаю что Delphi до сих пор не скомпилировал сам себя под Mac?
И ещё мне очень интересна тема создания web-приложений в Lazarus, через CGI.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[2]: Кроссплатформенный tchart в Delphi и Lazarus
Здравствуйте, Jack128, Вы писали:
J>Тут человек описывает в том числе и борьбу с TChart в лазаре https://habr.com/ru/post/534466/
Прошу прощения, может быть я совсем туплю, но не могу понять текст по ссылке:
Одной из основных проблем при портировании программы оказалось наличие компонента для построения графиков (2-х и 3-х мерных). Это обусловлено тем, что программа предназначена для расчёта динамики систем и результаты её работы именно в виде графиков в основном и представляются пользователю. Под Delphi в Windows мы использовали известный и достаточно качественный компонент TeeChart Pro от Steema software надо которым была сделана надстройка, которая этим компонентом управляла. Фирма даже его купила за 100 баксов официально и мы при разработке под Windows используем версию от 2017 года которая нас абсолютно полностью устраивает. Данная подсистема представляет одну из самых важных и сложных алгоритмически частей программного комплекса.
При портировании на Linux оказалось что в составе Lazarus штатно компонента этого нет, что меня сильно огорчило. Первоначально была сделана попытка использовать имеющийся в нём аналог — TAChart, который имеет схожий функционал. Соответственно в коде управляющей надстройки были сделаны IFDEF-ы и построение графика было переделано на этот компонент, но оказалось что он по визуальному представлению и некоторым очень необходимым функциям уступает TChart-у в Delphi (в частности не позволяет расположить вертикальные шкалы в одну линейку на разных уровнях).
При внимательном рассмотрении исходников компонента TeeChart Pro обнаружились забавные артефакты:
[рис]
А в коде обнаружилось следующее:
[рис]
Ой что же это такое ! Это вжжж неспроста подумал я почесав опилки в голове ! Оказывается кто-то этот компонент начинал портировать под LCL и даже что-то умудрился сделать !
Далее была проделана некоторая подготовительная работа для того, чтобы попробовать всё на Code Typhon:
— Все найденные в Source .pas, .lpr, .lfm файлы были переконвертированы в формат UTF8+BOM для корректного восприятия их компилятором в Linux.
— У файлов .lfm расширение было изменено на .frm которое принято для форм в среде CodeTyphon по дефолту.
— Имя файла teechart.lpk было изменено на teechart.ctpkg
— Во всех файлах где были ссылки на lfm-файлы тоже был автоматом заменён IFDEF:
Я так и не понял — авторы использовали teechart или tachart? Если первое, где они нашли эти исходники напр. teeanimationeditors.lfm и прочие из картинки? Может быть в Delphi? Я в своём этих файлов не нашёл.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[3]: Кроссплатформенный tchart в Delphi и Lazarus
Здравствуйте, Khimik, Вы писали:
K>Здравствуйте, Jack128, Вы писали:
J>>Тут человек описывает в том числе и борьбу с TChart в лазаре https://habr.com/ru/post/534466/
K>Прошу прощения, может быть я совсем туплю, но не могу понять текст по ссылке:
K>
K>Одной из основных проблем при портировании программы оказалось наличие компонента для построения графиков (2-х и 3-х мерных). Это обусловлено тем, что программа предназначена для расчёта динамики систем и результаты её работы именно в виде графиков в основном и представляются пользователю. Под Delphi в Windows мы использовали известный и достаточно качественный компонент TeeChart Pro от Steema software надо которым была сделана надстройка, которая этим компонентом управляла. Фирма даже его купила за 100 баксов официально и мы при разработке под Windows используем версию от 2017 года которая нас абсолютно полностью устраивает. Данная подсистема представляет одну из самых важных и сложных алгоритмически частей программного комплекса.
K>При портировании на Linux оказалось что в составе Lazarus штатно компонента этого нет, что меня сильно огорчило. Первоначально была сделана попытка использовать имеющийся в нём аналог — TAChart, который имеет схожий функционал. Соответственно в коде управляющей надстройки были сделаны IFDEF-ы и построение графика было переделано на этот компонент, но оказалось что он по визуальному представлению и некоторым очень необходимым функциям уступает TChart-у в Delphi (в частности не позволяет расположить вертикальные шкалы в одну линейку на разных уровнях).
K>При внимательном рассмотрении исходников компонента TeeChart Pro обнаружились забавные артефакты:
K>[рис]
K>А в коде обнаружилось следующее:
K>[рис]
K>Ой что же это такое ! Это вжжж неспроста подумал я почесав опилки в голове ! Оказывается кто-то этот компонент начинал портировать под LCL и даже что-то умудрился сделать !
K>Далее была проделана некоторая подготовительная работа для того, чтобы попробовать всё на Code Typhon:
K>- Все найденные в Source .pas, .lpr, .lfm файлы были переконвертированы в формат UTF8+BOM для корректного восприятия их компилятором в Linux.
K>- У файлов .lfm расширение было изменено на .frm которое принято для форм в среде CodeTyphon по дефолту.
K>- Имя файла teechart.lpk было изменено на teechart.ctpkg
K>- Во всех файлах где были ссылки на lfm-файлы тоже был автоматом заменён IFDEF:
K>Я так и не понял — авторы использовали teechart или tachart?
Ну судя по тексту они юзали
TeeChart Pro от Steema
K> Если первое, где они нашли эти исходники напр. teeanimationeditors.lfm и прочие из картинки? Может быть в Delphi?
Опять же судя по тексту — в сорцах этого teechart.
Но нашему софту графики не нужны, поэтому лично я — ни с этим компонентом не работал, просто вспомнил, что читал про это на хабре и кинул ссылку.
Как вариант, можно к Lazarus прикрутить PythonForLazarus, генерить графики в файл c помощью библиотеки matplotlib, картинки потом из файла на форму загружать.
Re[5]: Кроссплатформенный tchart в Delphi и Lazarus
Здравствуйте, Khimik, Вы писали:
K>Здравствуйте, paradok, Вы писали:
K>>>>>Пытаюсь портировать свою программу с Delphi на Lazarus
Tai>>>>С какой целью?
K>>>Скомпилировать под Linux и Mac.
P>>под мак Дельфи пашет норм. А линукс занимает сотые доли процента и наиг не нужен кроме серверных P>>оставьте вою маниовщину и несбыточные мечты
K> Я слышал что FMX глючное
злобная клевета мучеников лазаря и си-шарповцев