Космополит Гость
|
Добавлено: Чт Окт 11 2001 17:05 Заголовок сообщения: Builder. Как организовать обмен сообщениями? |
|
|
Возникла необходимость написать под Windows NT программу, управляющую внешним прибором. На Borland C++ Builder я раньше не писал, однако имею опыт написания виндоподобной программы на основе Turbo Vision, где все графические функции были переписаны мной вручную для обеспечения работы в графическом режиме SVGA. Во всяком случае, идеологию обмена данными между различными объектами программы с помощью именно сообщений я усвоил и полюбил: когда что-то изменяется в недрах программы, тот кусок кода, который это изменение совершает, может не знать ничего об именах и положении в памяти тех кусков кода, которые заняты отображением происходящего на экране или просто нуждаются в знаниях об изменениях в данных. Изменил данные, кинул об этом в систему сообщение - кому следует, тот сообщение выловил, прочитал, отреагировал и если оно явно личное - очистил. Неделю назад я установил на компьютере Borland C++ Builder 4.0 и с удивлением обнаружил, что не очень понятно, как именно внутрипрограммные объекты могут этими сообщениями обмениваться. В частности сложилось такое впечатление, что поля Caption текстовых экранчиков Label и Edit (которые я имел в виду использовать для отображения на экране простеньких данных типа числовых значений) не только не являются их private членами класса (то есть любой дурак из программы может в них влезть и как попало модифицировать, зная только имя экземпляра объекта), но даже зачастую открыты для редактирования (Edit) прямо юзером с экрана.
Вопрос: как выглядит основной поток межобъектных сообщений (для начала внутрипрограммных, а затем и общевиндовских, если это не одно и то же) и как заставить например нажатую кнопку сгенерировать код своей команды (а также как и чем эту команду в недрах программы потом поймать для обработки). Как заставить индикаторные текстовые объекты на форме модифицировать свое поле Caption и перерисовывать потом себя после того, как они обнаружат сообщение, представляющее для них интерес.
Куда например, попадает программист, попросив место для редактирования реакции объекта на его событие (например, при редактировании кнопки ObjectIncpector создает кусок кода в своем поле events, например для события OnClick). Кусок какого программного модуля открывается перед программистом для вписывания реакции программы?
Где бы скачать примеры работающих программ или получить более-менее внятных объяснений для новичка в Builder и вообще новичка в программировании под Windows?
С благодарностью к ответившим, Дима |
|