procedure TMDITab.Change; var AChild: TForm; AParent: TForm; begin if TabIndex > -1 then begin AChild := TForm(FChilds[TabIndex]); AParent := TForm(GetParentForm(Self)); // Ссылка на родительскую форму if FCurrentChild <> AChild then begin //FCurrentChild := AChild; //SendMessage(AChild.Handle, wm_NCActivate, wa_Active, 0); SendMessage(AParent.ClientHandle, WM_SETREDRAW, 0, 0); // Запрет ее отрисовки SendMessage(AChild.Handle, WM_CHILDACTIVATE, 0, 0); //AChild.SetFocus; //AChild.BringToFront; if AChild.WindowState = wsMinimized then begin if FCurrentChild.WindowState = wsMaximized then AChild.WindowState := wsMaximized else AChild.WindowState := wsNormal; end; SendMessage(AParent.ClientHandle, WM_SETREDRAW, 1, 0) ; // После перерисовываем родительскую форму RedrawWindow(AParent.ClientHandle, nil, 0, RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN or RDW_NOINTERNALPAINT) end; end; end; |