お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"Imageの配置"




{ScrollBoxに大きさの異なるTImageを重ならないように配置する
TImageはmyImageListによって管理されている}
procedure TForm1.reArrange;
var
   i,CurrTop,Leftmargin,topmargin,
   rightMargin,gap,rightend,bottom:integer;
begin
   if MyImageList=nil then Exit;
   ScrollBox1.autoscroll:=false;
   ScrollBox1.align:=AlClient;
   //scrollBox内縁とImage間余白
   Leftmargin:=10;
   Topmargin:=10;
   rightMargin:=10;
   gap:=10;//image間の最小隙間
   //初期化
   rightEnd:=Leftmargin;bottom:=topmargin;currTop:=topmargin;
   //配置開始
   for i:=0 to MyImageList.ListOfImage.count-1 do
   begin
      if TImage(MyImageList.ListOfImage.items[i])<>nil then
      begin
         with TImage(MyImageList.ListOfImage.items[i]) do
         begin
            top:=currTop;
            left:=RightEnd;
            RightEnd:=Left+Width+gap;
            If RightEnd>ScrollBox1.Width-rightMargin then
            begin //次の段へ
               currTop:=bottom+gap;
               Left:=LeftMargin;
               RightEnd:=Left+Width+gap;
               Top:=currTop;
            end;
            if bottom< top+height then bottom:=top+height;
            visible:=True;
         end;
      end;
   end;
   ScrollBox1.autoscroll:=True;
   ScrollBox1.align:=AlClient;
end;
                                     97/10/18(土) 08:59 凛(MXB01744)

Original document by 凛              氏 ID:(MXB01744)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum