Страница 116 из 158
Clarion 11-12
Добавлено: 20 Июнь 2022, 9:30
Губин Игорь
Игорь Столяров писал(а): ↑20 Июнь 2022, 9:13
несовместимые с жизнью проблемы
Был этап связанный с притиркой Clarion к AnyScreen. Поменялась логика некоторых шаблонов, компилятор стал более требователен к "<", ну и куча всего по-мелочи. Есть подозрение, что-что-то намудрили и с управлением памятью (ещё более тормозит когда программа отжирает более 1Гб оперативки), Если бы не необходимость запуска online-версии, то, может быть и сидел на старой. Пришлось проламываться через те проблемы. Теперь всё тьфу-тьфу-тьфу нормально.
Clarion 11-12
Добавлено: 20 Июнь 2022, 9:37
Игорь Столяров
Губин Игорь писал(а): ↑20 Июнь 2022, 9:30
Теперь всё тьфу-тьфу-тьфу нормально
Хорошо. Спасибо. Будем потихоньку пробовать работать ...
Clarion 11-12
Добавлено: 22 Июнь 2022, 22:29
PavelNK
Губин Игорь писал(а): ↑19 Июнь 2022, 17:05
PavelNK писал(а): ↑17 Июнь 2022, 6:47
C# не пробовал, а из Delphi и C++ вызывал.
А краткий ликбез можно? Вроде всё сделал, но творится невесть что. Или у меня крыша едет, или у компилятора C++ из поставки Clariona.
Короче, надо функцию типа
ClaFunc(*CString,Real,Real),ULong вызвать из C++
Нужен пример описания на C и пример параметров функции в Cla
ClsFunc(*CString,Real,Real),ULong,Pascal
unsigned long ClsFunc(char**, double, double);
char *FStr="First String";
double v1 = 2.0;
double v2=3.5;
unsigned iret;
iret = ClsFunc(&FStr, v1, v2);
P.S. Вариант unsigned long ClsFunc(char**, unsigned, double, double); где второй параметр длина, я, тоже, пробовал.
Были рабочие вещи, поискал, но не нашел
Хорошо бы тестовый проект на Клаше, чтобы можно было попробовать.
Там вся фишка в соглашениях по передаче параметров, они должны быть одинаковые.
Есть передача через стэк, бывает С-шная, а бывает Паскалевская. Есть передача через регистры, есть через регистры+стэк.
В дельфи указывается в описании процедуры, например stdcall - паскаль. Для С вроде так и пишется С. В Клашином С через прагмы. В MS не помню
Clarion 11-12
Добавлено: 23 Июнь 2022, 7:28
Губин Игорь
PavelNK писал(а): ↑22 Июнь 2022, 22:29
Хорошо бы тестовый проект на Клаше, чтобы можно было попробовать.
В приложении. Но я, после мучений, решил нанять мальчика студента, пусть напишет библиотечку под VC. С одной стороны я лишаюсь возможности её быстро модифицировать, но с другой - поджимают сроки. Это копеечная часть большого проекта.
Clarion 11-12
Добавлено: 26 Июнь 2022, 23:53
Игорь Столяров
Clarion 11.1 (все релизы, включая крайний)
-------------------------------------------------------
Если окно Report ProgressWindow имеет аттрибут MDI - начинаются подвисания / GPF
"Error: memory block free'd twice" при выходе из окна предварительного просмотра отчёта.
Проявление где-то 1 к 10, но стабильно на любых отчётах, включая штатные Example Clarion.
В Clarion 11.0 - эта проблема отсутствует ...
Clarion 11-12
Добавлено: 27 Июнь 2022, 9:18
Губин Игорь
Игорь Столяров писал(а): ↑26 Июнь 2022, 23:53
В Clarion 11.0 - эта проблема отсутствует ...
А там нет, случайно, несовпадения версий dll? Типичная ситуация, когда программа скомпилировна под 11.1, а библиотеки от предыдущих версий. Они там под AnyScreen много чего попеределывали.
Ошибки бы они с такой интенсивностью правили...
Clarion 11-12
Добавлено: 27 Июнь 2022, 9:48
Игорь Столяров
Губин Игорь писал(а): ↑27 Июнь 2022, 9:18
А там нет, случайно, несовпадения версий dll?
Исключено. Как я понимаю, вот это место хотели сделать полностью совместимым
с шаблонами ABC, но работающим теперь и под AnyScreen ...
FEATURE: New public IRpt interface for callbacks invoked by the RTL during report generation
Clarion 11-12
Добавлено: 27 Июнь 2022, 9:58
Губин Игорь
Игорь Столяров писал(а): ↑27 Июнь 2022, 9:48
с шаблонами ABC, но работающим теперь и под AnyScreen ...
Я принципиальный легасник ))))
Clarion 11-12
Добавлено: 27 Июнь 2022, 10:03
finsoftrz
Губин Игорь писал(а): ↑27 Июнь 2022, 9:58
Игорь Столяров писал(а): ↑27 Июнь 2022, 9:48
с шаблонами ABC, но работающим теперь и под AnyScreen ...
Я принципиальный легасник ))))
У тебя же стандартные шаблоны, которые тоже юзают abc классы. У них там небольшая задержка может быть между изменениями в abc и clarion шаблонах. Если, конечно, дело не на уровне rtl. Так что жди, скоро и тебе прилетит.
Clarion 11-12
Добавлено: 27 Июнь 2022, 10:16
Игорь Столяров
finsoftrz писал(а): ↑27 Июнь 2022, 10:03
Так что жди, скоро и тебе прилетит
А может быть и нет. Дело в том, что во всех примерах окна Report ProgressWindow - NotMDI.
Более того, все настройки MDI в Report - рудимент (DEPRECATED).
А потому, если самостоятельно флаг MDI Window не включать - то проблемы, как бы и нет ...
Вообще это место (Report ProgressWindow + MDI) всегда было проблемным.
Можно вспомнить как рушились через раз отчёты в потоках C55 ...
Clarion 11-12
Добавлено: 27 Июнь 2022, 10:19
Губин Игорь
finsoftrz писал(а): ↑27 Июнь 2022, 10:03
Так что жди, скоро и тебе прилетит.
1. Не а...
У меня не используются progress в репортах
2. Ты не совсем прав. Там может быть задержка с использованием специфических классов и возможностей. Но сама структура шаблонов и кодов весьма различна.
Clarion 11-12
Добавлено: 27 Июнь 2022, 10:24
finsoftrz
Вообще, да, mdi в данном месте выглядит не очень логично. Поэтому, видимо, забыли/забили и не протестили.
Clarion 11-12
Добавлено: 27 Июнь 2022, 10:29
Игорь Столяров
finsoftrz писал(а): ↑27 Июнь 2022, 10:24
Вообще, да, mdi в данном месте выглядит не очень логично.
Таки да ... Но иногда в запросе на создание отчёта - бывает нужно вызвать
календарик для ввода даты. Или окно со списком для выбора значения фильтра.
И в этом случае - все вызываемые из ReportWindow окна теперь тоже должны быть не MDI ...
Clarion 11-12
Добавлено: 27 Июнь 2022, 10:44
finsoftrz
Можно вызов в скобки взять из system{prop:threading}=0 и system{prop:threading}=1. Только под энискрином так делать не надо, оно повиснет.
Clarion 11-12
Добавлено: 27 Июнь 2022, 10:46
finsoftrz
На мое восприятие, правильнее вначале запросить все параметры, а потом уже вызывать ProgressWindow .