喫茶XRAYトップページ

[スレッド全体
]

[3377] Re4:710_SDIスタイルアのプリケーション返信 削除
2010/5/19 (水) 19:31:25 ishimizu
▼ Mr.XRAYさん

回答ありがとうございました。結局以下のようにしてみました。
SetForegroundWindow, SetForegroundWindowがあると
ウィンドウの表示がおかしいのではずしています。
FWHeight、FWWidthは、重ねて表示を実行したWindowのサイズです。
まだ、修正の余地がありますが、実際に実装するときに検討します。
以上 また、よろしくお願いします。

FWHeight := Screen.Forms[0].Height;
FWWidth := Screen.Forms[0].Width;

procedure TSDISubForm.menuCascadeWindowClick(Sender: TObject);
var
  WndHandleList: array of HWND;
  i: integer;
begin
  SetLength(WndHandleList, Screen.FormCount);

  for i := 0 to Screen.FormCount - 1 do begin
    Screen.Forms[i].Height := SDIMainForm.FWHeight;
    Screen.Forms[i].Width  := SDIMainForm.FWWidth;
    Screen.Forms[i].BorderStyle := bsSingle;
    WndHandleList[i] := Screen.Forms[i].Handle;
    //SetForegroundWindow(WndHandleList[i]);
  end;
  CascadeWindows(0,
                 0,  {MDITILE_SKIPDISABLED,}
                 nil,
                 Screen.FormCount,
                 Addr(WndHandleList[0]));

  for i := 0 to Screen.FormCount - 1 do begin
    Screen.Forms[i].BorderStyle := bsSizeable;
  end;
  //SetForegroundWindow(Handle);
end;



[3378] Re5:710_SDIスタイルアのプリケーション返信 削除
2010/5/19 (水) 21:02:27 Mr.XRAY
▼ ishimizuさん.どうも

お疲れ様です.
こんなもんじゃないでしょうか.
CascadeWindowの前でも設定できるんですね.

でも,このコードは他の方にも参考になりますね.
最近はワイドな画面が増えてきて,「あれっ?」
という人もいると思います.

Delphi 2010も,新規フォームが,このWindowsのデフォルトサイズ
になりますね.

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82