下揃え 
Procedure ajustObjectTop;
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 ( ajustObjectTop );

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 > 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 ( ajustObjectTop );