Выбор дочерних MDI-окон с помощью набора закладок TabSet
По всей видимости, дочерние MDI-окна не отвечают на те же
сообщения Windows, которые обрабатываются другими окнами. Ниже приведен способ
выбора определенного дочернего MDI-окна таким образом, чтобы оно стало активным.
Я читаю значение из компонента TINIFile и активизирую определенное дочернее
MDI-окно:
{
Делаем активным дочернее MDI-окно. Мы должны
послать сообщение Windows API, поскольку
дочернее MDI-окно может реагировать только
на "аварийный" набор системных сообщений.
}
i := ReadInteger( "Main", "ActiveMDIChild", -1 )
IF (i>=0) AND (i<MDIChildCount) THEN
POSTMESSAGE( Self.Handle, WM_MDIACTIVATE,
MDIChildren[i].Handle, 0 )
MDI-формы обрабатываются другим обработчиком по-умолчанию
(defMDIProc). Способов сделать это (см. заголовок) существует несколько.
Дочерние Mdi-формы являются частью массива с именем (как ни странно)
MDIChildren. Вы можете сделать так.....
For i := 0 To Form1.MDIChildCount - 1 DobeginIf Form1.MDIChildren[i].Caption = "Это первый!" Then{Здесь можно активизировать дочернюю MDI-форму
или выполнить какие-либо действия}end;
MDIChildren[x] - указатель на экземпляр дочерней MDI-формы. Использование
операторов IS и AS позволит вам иметь доступ к любым свойствам и методам любой
дочерней формы.
При открытии файла в набор Tabset добавляется новая закладка Tab, а ее
заголовок ("caption") устанавливается равным имени открытого файла. Затем форма
с помощью команды Tabset.AddObject добавляется как объект к tabset.
При щелчке на tabset, чтобы иметь доступ к верному файлу, я использую
следующий код:
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Выбор дочерних MDI-окон с помощью набора закладок TabSet", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!