システムエラー。コード:1400 ウィンドウ ハンドルが無効です
カテゴリー: ぷろぐらみんぐ/メモ
2013-11-04
システムエラー。コード:1400 ウィンドウ ハンドルが無効です。
執筆:2013.11.04
編集:2013.11.04
編集:2019.04.17
編集:2013.11.04
編集:2019.04.17
システムエラー。コード:1400.
ウィンドウ ハンドルが無効です。
ウィンドウ ハンドルが無効です。
このエラーは様々な原因があるため、エラーを発生させたアプリとエラーの直前の操作などから類推するしか方法がありません。
事案1: TMemo と TPageControl の組み合わせで起きるバグ?
TPageControl のバグ?
発生時: 一度も表示されていない TMemoに値をいれるとエラーが起きる
原因: 不明
回避方法
procedure TForm1.FormShow(Sender: TObject); var i : integer; begin for i:= PageControl1.PageCount-1 downto 0 do begin PageControl1.ActivePageIndex := i; // PageControl1.Pages[i].Show; end; end;
事案2: ダイアログボックスをParentWindowに設定したまま解放して、メインフォームの最前面状態(FormStyle)を変更した際に発生する
原因
解放するフォームのParentWindowの値が0意外になっている。
対処方法
ダイアログボックスを表示したらParentWindowの値を0にする。
try AboutBox.ParentWindow := self.Handle; AboutBox.ShowModal; finally AboutBox.ParentWindow := 0; end;