|
Платные хостинги
Раскрутка сайта
Книги по программированию
Как сделать активной одну из дочерних окон MDI ?, Активность дочерних окон MDI
- Помогите, пожалуйста, с активностью.Например, есть главная форма frmMain MDI-приложения.У нее есть 2 дочерних формы: frmChild1, frmChild2;frmMain.MDIChildren.[0] - это frmChild1 frmMain.MDIChildren.[1] - это frmChild2Предположим в данный момент активной является frmChild1.Пытаюсь переключиться на frmChild2 так:frmMain.MDIChildren.[1].SetFocus; - ничего не получается и ошибок не выдает :-(Как сделать активной одну из дочерних окон MDI-приложения ?
- Например так: Код frmMain.ActiveMDIChild:= frmMain.MDIChildren.[1] highlightSyntax('delphiMTFiND','delphi');
- Так нельзя, потому что свойство ActiveMDIChild is read-only (только для чтения :-(frmMain.MDIChildren[i].Show - тоже не годитсяХотя это работает, но дает побочный эффект: вызывает обработчик OnShow дочерней формы, а нужно просто сделать активной дочернюю форму.У кого еще есть идеи ?
- У меня есть очередная идея, извини, с первой я поторопился.Можно сделать вот так:Код SetWindowPos(MDIChildren[1].Handle, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE+SWP_NOMOVE);highlightSyntax('delphizZmNTE','delphi');OnShow не срабатывает, а срабатывает только OnActivate Это сообщение отредактировал SmaLL - 11.2.2003, 23:57
- Попробуй поставить первой строкой в обработчике onShow следующую:Код onShow:=nil;highlightSyntax('delphijNmOTE','delphi');Может поможет
- А можно сделать такой трюк:Код var proc:TNotifyEvent;...proc:=frmMain.MDIChildren[i].onShow;frmMain.MDIChildren[i].onShow:=nil;frmMain.MDIChildren[i].Show;frmMain.MDIChildren[i].onShow:=proc; highlightSyntax('delphiYzM2YT','delphi');
- Молодец SmaLL - твой вариант мне больше всех понравился и правильно работает.Хотя тот, что Vit предлагает - тоже мысль, но ее не пробовал.
Интернет казино
Онлайн игры
Увеличение члена
Купить DVD
|