Q:  How can I make one window the child of another without using MDI?

A:

unit Unit2;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs;

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
    procedure CreateParams(var Params: TCreateParams); override;
  end;

var
  Form2: TForm2;

implementation

{$R *.DFM}

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);  { call the inherited first }
  with Params do begin
    Style := Style or WS_CHILD;  { add a style flag }
    WndParent := Application.MainForm.Handle;
  end;
end;

end.