もしわかる方がいましたら、よろしくお願いします。
環境は Win2000、Delphi 6 Personal です。

メインフォームから開いたサブフォームを、メインフォームのパネルに埋め込んだ状態と
別ウィンドウの状態とで切り替えたかったので、下のような命令を書いてみました。

サブフォーム、埋め込みボタンクリック時
  self.Parent := MainForm.PanelSubForm;
  self.BorderStyle := bsNone;
  self.Align := alClient;

サブフォーム、解除ボタンクリック時
  self.Align := alNone;
  self.BorderStyle := bsSizeable;
  self.Parent := nil;

ところが上手く動く場合と、デスクトップの左上に張り付く場合と、
「コントロール 'SubForm' は親ウィンドウを持っていません.」
のようなエラーが発生する場合とがあって原因がつかめませんでした。
根本的なやり方が間違ってるのでしょうか?