Всем привет.
В программе есть куча MDIChild окон динамически создаваемых из dll библиотек. Никак не могу отловить момент когда одна форма теряет фокус а другая получает. Пробовал ловить сообщение WM_MDIACTIVATE через Application.OnMessage и ещё написанием обработчика на сообщение. Но я так подоозреваю (почитав MSDN) что это сообщение не прилетает главной форме...
Короче как отловить переход фокуса от одного окна к другому? Желательно всётаки отследив какоенить сообщение
Ловим получение фокуса ввода у MDI окон
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
ActiveMDIChild не катит уже?
Понимаешь мне надо отлавливать момент переключения между окнами. Мне чё создавать отдельный поток и постоянно проверять предложенное тобой свойство?
Как тебе такой варриант
Код: Выделить всё
procedure TForm1.FormCreate(Sender: TObject);
begin
Screen.OnActiveFormChange := UpdateObjects;
end;
procedure TForm1.UpdateObjects(Sender: TObject);
begin
if not (ActiveMDIChild = Nil) then
if ActiveMDIChild is TForm2 then Caption := TForm2(ActiveMDIChild).Caption;
end;
Спасибо Duncon! Очень помог! Как я сам не догадался покопать в сторону объекта Screen.