Даже в С6 если объявление переменных больше 640 кб то модуль тоже не компилится, "too many segdef"
Как скопировать процедуру в тот же модуль?
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1412
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Как скопировать процедуру в тот же модуль?
RaFaeL
- Губин Игорь
- Шубуршун
- Сообщения: 2584
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Как скопировать процедуру в тот же модуль?
Использую, но в одном, довольно специфическом случае.
Это я только кажусь дураком! На самом деле я полный идиот!
Губин Игорь
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Как скопировать процедуру в тот же модуль?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Admin
- Губин Игорь
- Шубуршун
- Сообщения: 2584
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Как скопировать процедуру в тот же модуль?
Программа работы со спектрометрами. Моё универсальное АПИ реализовано в виде отдельного модуля для каждого спектрометра (как dll). Вот там в одном большом файле CLW все Procedure и, соответсвенно, удобно использовать специфические глобальные для них переменные, ну и экспортируемые тоже
Ничего супер-пупер гениального. Задача диктовала именно такое решение
Это я только кажусь дураком! На самом деле я полный идиот!
Губин Игорь
Как скопировать процедуру в тот же модуль?
Модульные переменные позволяют работать как статические поля класса, они видны процедурам внутри и не видны всем другим.
Если процедуры внутри модуля работают со структурами данных, которые больше никому не нужны, зачем тащить их на глобальный уровень или заморачиваться с инклудниками?
Кстати, достаточно несложно, используя переменные и embed'ы модуля, реализовать настоящий класс внутри app без всяких шаблонов, а не тащить внешние файлы - тоже полезно, у меня много таких в приложениях.
Если процедуры внутри модуля работают со структурами данных, которые больше никому не нужны, зачем тащить их на глобальный уровень или заморачиваться с инклудниками?
Кстати, достаточно несложно, используя переменные и embed'ы модуля, реализовать настоящий класс внутри app без всяких шаблонов, а не тащить внешние файлы - тоже полезно, у меня много таких в приложениях.
Yufil
- Губин Игорь
- Шубуршун
- Сообщения: 2584
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Как скопировать процедуру в тот же модуль?
+100500
Это я только кажусь дураком! На самом деле я полный идиот!
Губин Игорь
Как скопировать процедуру в тот же модуль?
Извините, что запоздало. IMHO "ноги тянутся" от природы самого языка, т.е. того, что единицей компиляции является модуль, и условной компиляции (правда не помню, была ли условная компиляция изначально в языке или это было привнесено TopSpeed JPI).
Не знаю как сейчас, но даже в конце нулевых на полную перекомпиляцию проекта могло уходить по полчаса. Так что "протягивать" переменные для передачи из вызывающей процедуры в вызываемую через Глобалы было накладно, а через модульные переменные -- пожалуйста.
Shur
-
- ✯ Ветеран ✯
- Сообщения: 5174
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как скопировать процедуру в тот же модуль?
Сейчас всё изменилось. По Вашему посту, конкретно. У меня App с ~200 процедурами (как правило, обычные экранные формы), полная компиляция в C10 - 30 секунд. Переменные в процедуру стараюсь передавать через заголовок, дабы избежать всяческих проблем, типа озвученной мной в данном посте. В глобалах у меня много переменных описанных "как Тип".Shur писал(а):Не знаю как сейчас, но даже в конце нулевых на полную перекомпиляцию проекта могло уходить по полчаса. Так что "протягивать" переменные для передачи из вызывающей процедуры в вызываемую через Глобалы было накладно, а через модульные переменные -- пожалуйста.
И вообще сейчас в Кларионе есть (может и было) много возможностей для удобной и быстрой разработки. Из последней интересной находки. Стандартный репорт создаётся из очереди, переданной через заголовок, причём сама структура репорта понимает "нотификацию" структуры очереди. Плюс в этом всём - если есть сложный броуз и надо на его основе создать репорт, то можно не тратить время на новый "запрос" в БД. Да и "однотипность" такого решения позволяет сильно ускорить разработку отчётов ("однотипных").
We are hard at work… for you. 

kreator
Как скопировать процедуру в тот же модуль?
Я про то же. Сейчас, возможно, никто бы и не вспомнил про условную компиляцию: 30 секунд -- тьфу! Но тогда это был существенный выигрыш.
Хотя современные компиляторы (или среды, если хотите, в частности от Microsoft) в чём-то тоже ушли вперёд. Например, когда сообщается ещё до компиляции, что та или иная переменая используется всего один раз. Красота! Или, точнее -- мелочь, а приятно!
Shur
Вернуться в «CLARION for Windows»
Перейти
- CW
- ↳ CLARION for Windows
- ↳ CLARION for Internet
- ↳ Clarion.NET
- Эксклюзив
- ↳ Приват
- CLARION и...
- ↳ Reports
- ↳ Железо
- ↳ Готовые программы, шаблоны, библиотеки...
- ↳ cJSON
- ↳ LibCurl
- ↳ MAV
- ↳ SQL, Oracle, ...
- ↳ Multi-программирование(Pascal/Delphi, и т.д.)
- ↳ WinDev
- DOS
- ↳ CLARION for DOS
- Разное
- ↳ Новости
- ↳ English
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)