PROCEDURE Sheet_Print; CONST vLayerType=154; {レイヤの種類} ltDesign=1; ltSheet=2; VAR L_hd :HANDLE; L_name :STRING; Result :INTEGER; NO_Sheet :BOOLEAN; BEGIN {デザインレイヤは必ずある、シートレイヤの並びは基本的にはデザインレイヤの後なので逆順 しかし、切断面などの自動生成レイヤはシートレイヤの後に追加される} L_hd:=LLayer; {FLayer} NO_Sheet:=TRUE; WHILE L_hd<>NIL DO BEGIN IF GetObjectVariableInt(L_hd,vLayerType)=ltSheet THEN BEGIN NO_Sheet:=FALSE; L_name:=GetLName(L_hd); Layer(L_name); ShowLayer; ReDrawAll; CASE AlertQuestion('印刷を実行しますか?',Concat('現在、「',L_name,'」を表示中です。'),1,'印刷','中止','印刷ダイアログ','') OF 1: Result:=PrintWithoutUsingPrintDialog; 2: Result:=PrintUsingPrintDialog; OTHERWISE ; END; END; L_hd:=PrevLayer(L_hd); {NextLayer} END; IF NO_Sheet THEN AlrtDialog('シートレイヤがありません'); END; Run(Sheet_Print);