Страница 2 из 2

Добавлено: 27 фев 2010, 14:03
Den
m0p3e

Ну попробуй :)

Добавлено: 27 фев 2010, 14:14
galover
Den
m0p3e
спасибо!!! Вот такой вариант получился

Код: Выделить всё

#component "Z_WT"

alter interface Get_Mark;
     handleEvent
      cmInit :
      {
         inherited::handleEvent(cmInit);
         
         var commands : array[1..3] of word; 
         
         commands[1] := cmEdit;  
         commands[2] := cmInsert;
         commands[3] := cmDelete;

         DisableCommands(commands); 
      }
   end;
end.
Все работает как надо, кнопок редактирования на панели нет, подключается как обычный пользовательский res. От шаманства с контекстами отказался, так как нужно навешивать контекст на все поля ввода, контекст навешанный в целом на browse и screen не прокатывает :(

Добавлено: 27 фев 2010, 14:45
galover
еще вопрос - нужно ли перекомпилировать все это, после наката патчей, т.е. после изменения родительского ресурса?

Добавлено: 27 фев 2010, 14:58
m0p3e
galover
Крайне желательно пересобирать их если изменился исходный интерфейс. Я пакетно компиляю вообще все после установки новых патчей и голова не болит. :)

Добавлено: 27 фев 2010, 15:12
Screw
Вообще говоря, перекомпилировать необязательно: поскольку наследование в Атлантисе статическое, то после докомпиляции вы получаете полную копию базового интерфейса + свои доработки. Пока работает нормально, наследника можно не трогать. Другое дело, если поставляемые обновлениями исправления в базовом интерфейсе для вас важны, и вы хотите дополнять ими наследника: тут уж без его повторной сборки не обойтись.

Добавлено: 27 фев 2010, 15:18
galover
а как с контрольной суммой? Она ведь меняется, интерфейсы которые используют функционал докомпилировнного фейса перестанут работать или что?

Добавлено: 27 фев 2010, 15:48
m0p3e
Screw
Это с позиции человека имеющего постоянный доступ к исходникам.
А простым смертным разработчик не отчитывается чего он поменял. Поэтому выход один - тотальная пересборка и проверка полученного результата.

Добавлено: 01 мар 2010, 16:26
Screw
Повторю: после сборки наследник становится независимым от родителя. Контрольные суммы у наследника свои. Если объектные интерфейсы, реализуемые родителем/наследником не менялись (за такое, конечно, положено устраивать тёмную), то никакие контрольные суммы нигде не изменятся.
Короче говоря, перекомпилировать наследника обязательно только если мы замещаем им родителя, и public-связи последнего изменились, т.е., прочий прикладной код считает, что у родителя появились новые public-методы, потоки, свойства, реализации новых объектных интерфейсов и т.п..
Если же речь идет о ситуации, когда родитель используется для создания некого модифицированного клона, который востребован только в сторонних доработках, то пересборкой можно пренебречь.

Я хочу сказать лишь то, что не стоит делать из перекомпиляции ритуал. Хотя вынужден признать - головной боли при тотальной пересборке значительно меньше. :)

Добавлено: 01 мар 2010, 16:32
m0p3e
Виталий. То что наследник становится независим от родителя это я знаю. :)
Но именно этого я и боюсь, т.к. есть вероятность, что личности связанные внебрачными отношениями с этой семейкой расчитаны на ее изменение и очень расстроятся. :)

Добавлено: 01 мар 2010, 16:36
Screw
Напомню: всё зависит от способа использования наследника. Либо мы им замещаем родителя и должны следить за "чистотой крови", либо мы порождаем параллельную ветку, и сами ведем свою собственную "генетическую линию".