PROCEDURE Area_2D; LABEL 999; CONST {ForEachObjectInLayer} objOptions=2; {Selected} travOptions=0; {Shallow} layerOptions=0; {Current} pPrimUnitFraction=150; {ミリ/単位(主単位)} pPrimUnitsPerInch=152; {単位/インチ(主単位)} pPrimUnitStyleName=153; {単位名(主単位)} pPrimSquareUnitMark=158; {面積単位記号(主単位)} pAreaUnitsPerSquareInch=176; {面積単位/平方インチ} pAreaUnitName=177; {面積単位名} pAreaUnitMark=178; {面積単位記号} pAreaUnitFraction=186; {平方ミリ/面積単位} pSecondUnitFraction=200; {?} pSecondUnitsPerInch=202; {単位/インチ(補助単位)} pSecondUnitStyleName=203; {単位名(補助単位)} pSecondSquareUnitMark=208; {面積単位記号(補助単位)} VAR O_Area,TO_Area :REAL; FUNCTION Get_SelectHandle(O_hd:HANDLE):BOOLEAN; {O_hd=NILでは実行されない} BEGIN IF GetObjectVariableBoolean(O_hd,651) THEN BEGIN O_Area:= ObjArea(O_hd); IF O_Area<>0 THEN TO_Area:=TO_Area+O_Area ELSE SetDSelect(O_hd); END ELSE SetDSelect(O_hd); Get_SelectHandle:=FALSE; END; BEGIN IF FSActLayer=NIL THEN BEGIN AlrtDialog('選択されているオブジェクトがありません'); {プロパティで対応可} GOTO 999; END; ForEachObjectInLayer(Get_SelectHandle,objOptions,travOptions,layerOptions); Message( GetPrefString(pAreaUnitName),' [ ',TO_Area,' ] ',GetPrefString(pAreaUnitMark),' , ', GetPrefString(pPrimUnitStyleName),' [ ',TO_Area/GetPrefReal(pAreaUnitsPerSquareInch)*GetPrefReal(pPrimUnitsPerInch)^2,' ] ',GetPrefString(pPrimSquareUnitMark),' , ', { GetPrefString(pPrimUnitStyleName),' [ ',TO_Area*GetPrefReal(pAreaUnitFraction)/GetPrefReal(pPrimUnitFraction)^2,' ] ',GetPrefString(pPrimSquareUnitMark),' , ',} GetPrefString(pSecondUnitStyleName),' [ ',TO_Area/GetPrefReal(pAreaUnitsPerSquareInch)*GetPrefReal(pSecondUnitsPerInch)^2,' ] ',GetPrefString(pSecondSquareUnitMark) { GetPrefString(pSecondUnitStyleName),' [ ',TO_Area*GetPrefReal(pAreaUnitFraction)/GetPrefReal(pSecondUnitFraction)^2,' ] ',GetPrefString(pSecondSquareUnitMark)} ); 999:END; Run(Area_2D);