カスケード表示を昇順にするには?

解決


sky  2003-12-12 21:14:47  No: 6149

MDIの子ウィンドウを使ってフォーム上に複数の画像を表示しています。
その画像をカスケード表示するときにファイル名の昇順あるいは降順に
表示させることはできますか?
ヘルプを見てもそこまでの情報がなかったので、ご教授お願い致します。


Halbow  2003-12-12 23:11:19  No: 6150

Halbow です。

ファイル名を自前でソートして、フォーカスを与える順序を変えるといいです。
画像のファイル名が子ウィンドウの  Caption に表示されていると仮定すると
以下のようにします。

uses
  Unit2;

procedure TForm1.DoIt1Click(Sender: TObject);
var
  SL:TStringList;
  i:integer;
begin
  SL := TStringList.Create;
  try
    for i := 0 to MDIChildCount-1 do
      SL.AddObject(MDIChildren[i].Caption,MDIChildren[i]);

    SL.Sort; // ソートはつねに昇順

    for i := MDIChildCount-1 downto 0 do //昇順
    //for i := 0 to MDIChildCount-1 do       //降順
      TForm(SL.Objects[i]).SetFocus;

    Cascade;
  finally
    SL.Free;
  end;
end;


sky  2003-12-12 23:34:49  No: 6151

Halbowさん、ありがとうございます。
解決いたしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加