Принципиальная разница между классикой (к слову, странный термин легаси уже лет 10-15 не используется разработчиком, который признал равноправие обоих веток шаблонов) и абц в расположение структуры accept, case event, case field. В классике оно в теле основной процедуры, кодовые вставки делаются там же. В абц убрано в класс, а кодовые вставки делаются в виртуальных методах. Если мозги привыкли к четкой логике классического подхода, при начале работы с абц их надо перестраивать на то, что часть кода здесь, а часть кода упрятана.
глюки ABC
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
глюки ABC
C6/C11, ШВС, tps/btrieve.
глюки ABC
хорошо, попробуй закрыть окно по-другому. В рабочем у меня стопов не было, просто выжимку делал
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
глюки ABC
Окно не закрывается? Как понять? Если Вы о том, что где найти место вставки в процедуре окна, когда оно уже закрыто, то скорее всего нигде. Только снаружи процедуры.
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
глюки ABC
Я согласен с Вами. Дайте термин. Слово "Классика" использовать? Все варианты неудобны, на мой взгляд. А вот когда говорят (говорим) "Легаси" всем понятно о чём речь.
We are hard at work… for you.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
глюки ABC
Есть официальное название clarion templates и abc templates. Иногда используют "процедурные шаблоны" и "объектные шаблоны", хотя это не совсем правильно, так как в стандартных clarion шаблонах сейчас также используются abc классы. Я предпочитаю названия " классические шаблоны" и "абц шаблоны". Причем разновидности ШВС тоже отношу к классическим. Разница в подходе, как я писал выше. Классические шаблоны появились в кларионе еще в dos версиях. Abc это уже придумка Байлисса из топспидовской команды, появилось в clarion4. Баррингтон, если помните, долго вообще не хотел вводить поддержку ооп, считая, что можно обойтись встроенными объектами. Потом, когда начал постепенно отходить от дел, отдал решение этих вопросов на усмотрение технических специалистов из топспида. Точнее, выходцев из jp.
Поэтому, как мне представляется, термин "классические шаблоны" наиболее точен. "Легаси" это термин, которым обозначают что-то устаревшее, унаследованное с прошлых времен. Однако на этих легаси оказалось проектов не намного меньше, чем на абц, и после распада топспида до Зунера дошло, что такое претенциозное название негативно сказывается на взаимоотношениях с пользователями.
Поэтому, как мне представляется, термин "классические шаблоны" наиболее точен. "Легаси" это термин, которым обозначают что-то устаревшее, унаследованное с прошлых времен. Однако на этих легаси оказалось проектов не намного меньше, чем на абц, и после распада топспида до Зунера дошло, что такое претенциозное название негативно сказывается на взаимоотношениях с пользователями.
C6/C11, ШВС, tps/btrieve.
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
глюки ABC
Я не готов к термину "классические шаблоны". Для меня "классика" - это абц. "Классика" - это что-то стандартное, давно устоявшееся, как правило используемое. Опять же, термины типа "Clarion Chain" и "ABC Chain" вроде как нормальные, но по-русски это как? Надо, действительно, что-то придумать, чтобы уйти от слова "Легаси". И чтобы здесь, в сообществе всем было понятно о чём идёт речь.
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
глюки ABC
По поводу рантаймных индексов. Вот такое предположение. В ABC структура и свойства таблицы формируются на этапе инициализации соответствующего класса. И далее изменения ограничены. Возможно и построение рантаймных индексов не ведёт ни к какой реакции в классе. Причём аналога\обёртки build в ABC нет. А в справке по build ничего отдельного для ABC не упоминается. Но это не криминал, как обычно.
We are hard at work… for you.
глюки ABC
сейчас приходиться несколькими окнами управлять из другой процедуры, что неудобно и тянет за собой глобальные переменный. Более удобно и привычно было раньше дать в окне нужные параметры и в зависимости от них вызвать после закрытия нужную процедуру и передать ей параметры
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
глюки ABC
В моем понимании классика это та архитектура, которая изначально закладывалась при создании продукта. Абц уж точно не классика, а пристегнутая позже технология. Когда-то кто-то написал, что Баррингтон устал отстаивать жизнеспособность концепции шаблонов в противовес объектному программированию (которое продвигали в делфях) и решил в конце концов убить двух зайцев. Типа у нас шаблоны, но они завязаны на классы.
C6/C11, ШВС, tps/btrieve.
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
глюки ABC
Вот не вижу в чём удобство. В нечитаемом коде? Объясните зачем из одного окна вызывать другое при этом закрыв первое, но из процедуры не выйти?porutchik писал(а): ↑27 Май 2020, 12:47сейчас приходиться несколькими окнами управлять из другой процедуры, что неудобно и тянет за собой глобальные переменный. Более удобно и привычно было раньше дать в окне нужные параметры и в зависимости от них вызвать после закрытия нужную процедуру и передать ей параметры
We are hard at work… for you.
глюки ABC
Окно в ABC-шаблонах явным образом не закрывается.
В ThisWindow.kill в обработчик надо вставить что-то типа
IF !STATUS(0) THEN CLOSE(0). или
IF !STATUS(Window) THEN CLOSE(Window).
Динамический индекс пробовал давным-давно, когда только что появилось. С Browse было несовместимо от слова совсем, Get по индексу не срабатывает, фильтр как-то очень своеобразно. Ошибочное условие просто игнорировалось. Да, ещё не все драйвера любят ( потом выскребал из Словаря при переносе на SQL ). В общем, View рулит...
глюки ABC
Я из процедуры с окном A вызвал процедуру с окном B. Хочу после закрытия окна B внести поправки в окно A. И облом, потому как в ABC окно до выхода из процедуры не закрывается.kreator писал(а): ↑27 Май 2020, 13:37Вот не вижу в чём удобство. В нечитаемом коде? Объясните зачем из одного окна вызывать другое при этом закрыв первое, но из процедуры не выйти?porutchik писал(а): ↑27 Май 2020, 12:47сейчас приходиться несколькими окнами управлять из другой процедуры, что неудобно и тянет за собой глобальные переменный. Более удобно и привычно было раньше дать в окне нужные параметры и в зависимости от них вызвать после закрытия нужную процедуру и передать ей параметры
глюки ABC
почему не выйти? нужно завершить оконную процедуру и вызвать другое оно (репорт, и т.д.) в зависимости от вызывающей процедуры