Top > 図形の整列

下揃え Edit

PROCEDURE ajustObjectBottom;
   var   {変数宣言部}
    gBotAxis: real;  {gBotAxisは実数}
    gCount:integer;  {gCountは整数}
    p1X, p1Y, p2X, p2Y:REAL;  {p1X, p1Y, p2X, p2Yは実数}

{サブルーチン部}
   function getBotAxis( pObj:Handle ):boolean;
    begin
     gCount := gCount +1;
     GetBBox( pObj, p1X, p1Y, p2X, p2Y );{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;
{main}
    begin
      gCount := 0;
      gBotAxis := 10000000000.0;
      ForEachObjectInLayer(getBotAxis , 2, 0, 4 );
      if gCount > 1 then
       ForEachObjectInLayer(doMove , 2, 0, 4 );
    end;
  run ( ajustObjectBottom );

整列コマンド  Edit

下揃え

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
Last-modified: Sun, 04 Dec 2011 15:21:57 JST (4530d)