Top > 図形の整列

**下揃え [#ec7d8705]
>Procedure	ajustObjectBottom;
>PROCEDURE	ajustObjectBottom;
   var   &color(green){{変数宣言部}};
    gBotAxis: real;  &color(green){{gBotAxisは実数}};
    gCount:integer;  &color(green){{gCountは整数}};
    p1X, p1Y, p2X, p2Y:REAL;  &color(green){{p1X, p1Y, p2X, p2Yは実数}};
>&color(green){{サブルーチン部}};
   function	getBotAxis( pObj:Handle ):boolean;			
    begin
     gCount := gCount +1;
     GetBBox( pObj,  p1X, p1Y, p2X, p2Y );&color(green){{p1:左上、p2:右下}};
     if gBotAxis > p2Y then
      gBotAxis := p2Y;
    end;
   function	doMove( pObj:Handle ):boolean;			
     begin
      GetBBox( pObj,  p1X, p1Y, p2X, p2Y );
      HMove(pObj, 0, gBotAxis - p2Y);
     end;
&color(green){{main}};
    begin
      gCount := 0;		
      gBotAxis := 10000000000.0;
      ForEachObjectInLayer(getBotAxis ,  2, 0,  4 );
      if gCount > 1 then			
       ForEachObjectInLayer(doMove ,  2, 0,  4 );
    end;
  run ( ajustObjectBottom );
** 整列コマンド [#w5f8dee5]
下揃え
 Procedure	ajustObjectBottom;
	var
		gBotAxis: real;
		gCount:integer;
		p1X, p1Y, p2X, p2Y:REAL;
 
	function	getBotAxis( pObj:Handle ):boolean;			
		begin
			gCount := gCount +1;
			GetBBox( pObj,  p1X, p1Y, p2X, p2Y );
			if gBotAxis > p2Y then
				gBotAxis := p2Y;
		end;
 
	function	doMove( pObj:Handle ):boolean;			
		begin
			GetBBox( pObj,  p1X, p1Y, p2X, p2Y );
			HMove(pObj, 0, gBotAxis - p2Y);
		end;
 {main}
	begin
		gCount := 0;		
		gBotAxis := 10000000000.0;
		ForEachObjectInLayer(getBotAxis ,  2, 0,  4 );
		if gCount > 1 then			
			ForEachObjectInLayer(doMove ,  2, 0,  4 );
	end;
 run ( ajustObjectBottom );

上揃え
 Procedure	ajustObjectTop;
	var
		gBotAxis: real;
		gCount:integer;
		p1X, p1Y, p2X, p2Y:REAL;
 
	function	getBotAxis( pObj:Handle ):boolean;			
		begin
			gCount := gCount +1;
			GetBBox( pObj,  p1X, p1Y, p2X, p2Y );
			if gBotAxis < p1Y then
				gBotAxis := p1Y;
		end;
 
	function	doMove( pObj:Handle ):boolean;			
		begin
			GetBBox( pObj,  p1X, p1Y, p2X, p2Y );
			HMove(pObj, 0,gBotAxis - p1y);
		end;
 {main}
	begin
		gCount := 0;		
		gBotAxis := -10000000000.0;
		ForEachObjectInLayer(getBotAxis ,  2, 0,  4 );
		if gCount > 1 then			
			ForEachObjectInLayer(doMove ,  2, 0,  4 );
	end;
 run ( ajustObjectTop );

右揃え
 Procedure	ajustObjectR;
	var
		gBotAxis: real;
		gCount:integer;
		p1X, p1Y, p2X, p2Y:REAL;
 
	function	getBotAxis( pObj:Handle ):boolean;			
		begin
			gCount := gCount +1;
			GetBBox( pObj,  p1X, p1Y, p2X, p2Y );
			if gBotAxis < p2x then
				gBotAxis := p2x;
		end;
 
	function	doMove( pObj:Handle ):boolean;			
		begin
			GetBBox( pObj,  p1X, p1Y, p2X, p2Y );
			HMove(pObj,gBotAxis - p2x,0);
		end;
 {main}
	begin
		gCount := 0;		
		gBotAxis := -10000000000.0;
		ForEachObjectInLayer(getBotAxis ,  2, 0,  4 );
		if gCount > 1 then			
			ForEachObjectInLayer(doMove ,  2, 0,  4 );
	end;
 run ( ajustObjectR );
左揃え
 Procedure	ajustObjectL;
	var
		gBotAxis: real;
		gCount:integer;
		p1X, p1Y, p2X, p2Y:REAL;
 
	function	getBotAxis( pObj:Handle ):boolean;			
		begin
			gCount := gCount +1;
			GetBBox( pObj,  p1X, p1Y, p2X, p2Y );
			if gBotAxis > p1x then
				gBotAxis := p1x;
		end;
 
	function	doMove( pObj:Handle ):boolean;			
		begin
			GetBBox( pObj,  p1X, p1Y, p2X, p2Y );
			HMove(pObj,gBotAxis - p1x,0);
		end;
 {main}
	begin
		gCount := 0;		
		gBotAxis := 10000000000.0;
		ForEachObjectInLayer(getBotAxis ,  2, 0,  4 );
		if gCount > 1 then			
			ForEachObjectInLayer(doMove ,  2, 0,  4 );
	end;
 run ( ajustObjectL );
左右中央
 Procedure ajustObLcenter;
	VAR
		gRaxis:REAL;
		gLaxis:REAL;
		gCount:INTEGER;
		p1x,p1y,p2x,p2y:REAL;
 
	FUNCTION getRightAxis(pObj:Handle):BOOLEAN;
		BEGIN
			gCount := gCount + 1;
			GetBBox(pObj,p1x,p1y,p2x,p2y);
			IF gRaxis < p2x THEN
					gRaxis := p2x;
			IF gLaxis > p1x THEN
					gLaxis := p1x;
		END;
	FUNCTION doMove(pObj:Handle):BOOLEAN;
		BEGIN
			GetBBox(pObj,p1x,p1y,p2x,p2y);
			HMove(pObj,(gRaxis+gLaxis-(p2x+p1x))/2,0);
		END;
 {main}
	BEGIN
		gCount:=0;
		gRaxis:=-10000000000.0;
		gLaxis:=10000000000.0;
		ForEachObjectInLayer(getRightAxis,2,0,4);
		IF gCount>1 THEN
			ForEachObjectInLayer(doMove,2,0,4);
	END;
 run (ajustObLcenter);
上下中央
 Procedure ajustObHcenter;
	VAR
		gTaxis:REAL;
		gBaxis:REAL;
		gCount:INTEGER;
		p1x,p1y,p2x,p2y:REAL;
 
	FUNCTION getTopAxis(pObj:Handle):BOOLEAN;
		BEGIN
			gCount := gCount + 1;
			GetBBox(pObj,p1x,p1y,p2x,p2y);
			IF gTaxis < p1y THEN
					gTaxis := p1y;
			IF gBaxis > p2y THEN
					gBaxis := p2y;
		END;
	FUNCTION doMove(pObj:Handle):BOOLEAN;
		BEGIN
			GetBBox(pObj,p1x,p1y,p2x,p2y);
			HMove(pObj,0,(gTaxis+gBaxis-(p2y+p1y))/2);
		END;
 {main}
	BEGIN
		gCount:=0;
		gTaxis:=-10000000000.0;
		gBaxis:=10000000000.0;
		ForEachObjectInLayer(getTopAxis,2,0,4);
		IF gCount>1 THEN
			ForEachObjectInLayer(doMove,2,0,4);
	END;
 run (ajustObHcenter);

上下左右中央
 Procedure ajustObLHcenter;
	VAR
		gRaxis:REAL;
		gLaxis:REAL;
		gTaxis:REAL;
		gBaxis:REAL;
		gCount:INTEGER;
		p1x,p1y,p2x,p2y:REAL;
 
	FUNCTION getCenterAxis(pObj:Handle):BOOLEAN;
		BEGIN
			gCount := gCount + 1;
			GetBBox(pObj,p1x,p1y,p2x,p2y);
			IF gRaxis < p2x THEN
					gRaxis := p2x;
			IF gLaxis > p1x THEN
					gLaxis := p1x;
			IF gTaxis < p1y THEN
					gTaxis := p1y;
			IF gBaxis > p2y THEN
					gBaxis := p2y;
		END;
	FUNCTION doMove(pObj:Handle):BOOLEAN;
		BEGIN
			GetBBox(pObj,p1x,p1y,p2x,p2y);
			HMove(pObj,(gRaxis+gLaxis-(p2x+p1x))/2,(gTaxis+gBaxis-(p2y+p1y))/2);
		END;
 {main}
	BEGIN
		gCount:=0;
		gRaxis:=-10000000000.0;
		gLaxis:=10000000000.0;
		ForEachObjectInLayer(getCenterAxis,2,0,4);
		IF gCount>1 THEN
			ForEachObjectInLayer(doMove,2,0,4);
	END;
 run (ajustObLHcenter);

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS