Thursday, April 12, 2012

Hide flickering MDI Child Creation

// To hide annoying flickering MDI Child creation

  try
    SendMessage(Application.MainForm.ClientHandle,WM_SETREDRAW,0,0);
    FormChild:=TBaseChildForm.Create(application);
    FormChild.Caption:='Form '+IntToStr(n);
    FormChild.Show;
  finally
    SendMessage(Application.MainForm.ClientHandle,WM_SETREDRAW,1,0);
    RedrawWindow(Application.MainForm.ClientHandle, nil, 0, RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN or RDW_NOINTERNALPAINT);
  end;