Clarion 11-12

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Clarion 11-12

Сообщение Губин Игорь »

Игорь Столяров писал(а): 20 Июнь 2022, 9:13 несовместимые с жизнью проблемы
Был этап связанный с притиркой Clarion к AnyScreen. Поменялась логика некоторых шаблонов, компилятор стал более требователен к "<", ну и куча всего по-мелочи. Есть подозрение, что-что-то намудрили и с управлением памятью (ещё более тормозит когда программа отжирает более 1Гб оперативки), Если бы не необходимость запуска online-версии, то, может быть и сидел на старой. Пришлось проламываться через те проблемы. Теперь всё тьфу-тьфу-тьфу нормально. :nr:
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

Сообщение Игорь Столяров »

Губин Игорь писал(а): 20 Июнь 2022, 9:30 Теперь всё тьфу-тьфу-тьфу нормально
Хорошо. Спасибо. Будем потихоньку пробовать работать ... :)
За теми кто отстал - не возвращаться. (С) Кодекс
PavelNK
Старожил
Сообщения: 262
Зарегистрирован: 15 Март 2011, 8:02

Clarion 11-12

Сообщение 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 не помню
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Clarion 11-12

Сообщение Губин Игорь »

PavelNK писал(а): 22 Июнь 2022, 22:29 Хорошо бы тестовый проект на Клаше, чтобы можно было попробовать.
В приложении. Но я, после мучений, решил нанять мальчика студента, пусть напишет библиотечку под VC. С одной стороны я лишаюсь возможности её быстро модифицировать, но с другой - поджимают сроки. Это копеечная часть большого проекта.
Вложения
SendLibrary.zip
(8.39 КБ) 62 скачивания
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

Сообщение Игорь Столяров »

Clarion 11.1 (все релизы, включая крайний)
-------------------------------------------------------
Если окно Report ProgressWindow имеет аттрибут MDI - начинаются подвисания / GPF
"Error: memory block free'd twice" при выходе из окна предварительного просмотра отчёта.
Проявление где-то 1 к 10, но стабильно на любых отчётах, включая штатные Example Clarion.

В Clarion 11.0 - эта проблема отсутствует ... :dizzy:
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Clarion 11-12

Сообщение Губин Игорь »

Игорь Столяров писал(а): 26 Июнь 2022, 23:53 В Clarion 11.0 - эта проблема отсутствует ...
А там нет, случайно, несовпадения версий dll? Типичная ситуация, когда программа скомпилировна под 11.1, а библиотеки от предыдущих версий. Они там под AnyScreen много чего попеределывали. :dizzy: Ошибки бы они с такой интенсивностью правили... :idied:
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

Сообщение Игорь Столяров »

Губин Игорь писал(а): 27 Июнь 2022, 9:18 А там нет, случайно, несовпадения версий dll?
Исключено. Как я понимаю, вот это место хотели сделать полностью совместимым
с шаблонами ABC, но работающим теперь и под AnyScreen ...
FEATURE: New public IRpt interface for callbacks invoked by the RTL during report generation
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Clarion 11-12

Сообщение Губин Игорь »

Игорь Столяров писал(а): 27 Июнь 2022, 9:48 с шаблонами ABC, но работающим теперь и под AnyScreen ...
Я принципиальный легасник )))) :lol: :nr:
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

Губин Игорь писал(а): 27 Июнь 2022, 9:58
Игорь Столяров писал(а): 27 Июнь 2022, 9:48 с шаблонами ABC, но работающим теперь и под AnyScreen ...
Я принципиальный легасник )))) :lol: :nr:
У тебя же стандартные шаблоны, которые тоже юзают abc классы. У них там небольшая задержка может быть между изменениями в abc и clarion шаблонах. Если, конечно, дело не на уровне rtl. Так что жди, скоро и тебе прилетит. :-)
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

Сообщение Игорь Столяров »

finsoftrz писал(а): 27 Июнь 2022, 10:03 Так что жди, скоро и тебе прилетит
А может быть и нет. Дело в том, что во всех примерах окна Report ProgressWindow - NotMDI.
Более того, все настройки MDI в Report - рудимент (DEPRECATED).
А потому, если самостоятельно флаг MDI Window не включать - то проблемы, как бы и нет ...

Вообще это место (Report ProgressWindow + MDI) всегда было проблемным.
Можно вспомнить как рушились через раз отчёты в потоках C55 ... :nono:
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Clarion 11-12

Сообщение Губин Игорь »

finsoftrz писал(а): 27 Июнь 2022, 10:03 Так что жди, скоро и тебе прилетит.
1. Не а... :lol: У меня не используются progress в репортах 8)
2. Ты не совсем прав. Там может быть задержка с использованием специфических классов и возможностей. Но сама структура шаблонов и кодов весьма различна. :P
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

Вообще, да, mdi в данном месте выглядит не очень логично. Поэтому, видимо, забыли/забили и не протестили.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

Сообщение Игорь Столяров »

finsoftrz писал(а): 27 Июнь 2022, 10:24 Вообще, да, mdi в данном месте выглядит не очень логично.
Таки да ... Но иногда в запросе на создание отчёта - бывает нужно вызвать
календарик для ввода даты. Или окно со списком для выбора значения фильтра.
И в этом случае - все вызываемые из ReportWindow окна теперь тоже должны быть не MDI ... :(
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

Можно вызов в скобки взять из system{prop:threading}=0 и system{prop:threading}=1. Только под энискрином так делать не надо, оно повиснет.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

На мое восприятие, правильнее вначале запросить все параметры, а потом уже вызывать ProgressWindow .
C6/C11, ШВС, tps/btrieve.
Ответить