PROCEDURE SelectT_ChangeF; LABEL 99,999; CONST {ForEachObjectInLayer} objOptions=0; {All} travOptions=0; {Shallow} layerOptions=0; {Current} tTEXT=10; {文字列} tGROUP=11; {グループ} tDIMENSION=63; {寸法線} tPLUGINOBJECT=86; {プラグインオブジェクト} tViewPort=122; {ビューポート} vLayerType=154; {レイヤの種類} ltDesign=1; ltSheet=2; lvDesign=1; {LVP_sw} lvSheet=2; lvViewPort=3; GT_Annotation=2; {ビューポート注釈} vVPScale=1003; {ビューポートの縮尺} vFontID=28; {寸法文字のフォント番号} vFontSize=17; {寸法値のフォントサイズ(mm)} in_pt=72; in_mm=25.4; OK_Button = 1; Cancel_Button = 2; G0_name='Outside'; VAR AL_name :STRING; ST_num,G_num :INTEGER; ST_hd :DYNARRAY[] OF HANDLE; G_sw :DYNARRAY[] OF INTEGER; G_name :DYNARRAY[] OF STRING; ST_scale :DYNARRAY[] OF REAL; DfontID :DYNARRAY[] OF INTEGER; Dsize :DYNARRAY[] OF REAL; LVP_sw :INTEGER; TO_hd :HANDLE; i,j,g, G_sta :INTEGER; V_scale :REAL; FUNCTION DIALOG_SAC(ST_num,G_num,LVP_sw:INTEGER):LONGINT; CONST iST_Gb=3; iST_Lb=10; iG_Gb=4; iG_Lbn=11; iC_Gb=5; iC_Lbn=12; iUd_Pb=13; Lb_width=63; Lb_height=20; Lbn_width=14; Lbn_height=8; AE_Right=1; {Alignment Options} AM_Shift=1; TYPE Col=STRUCTURE i,t,g,c,f,s :INTEGER; END; VAR {keep} D_ID :LONGINT; ST_Col :Col; CL_num,GL_num :INTEGER; BOX_hd :DYNARRAY[] OF HANDLE; PROCEDURE Insert_Lb(VAR itemIndex:INTEGER; i:INTEGER; ST_Col:Col); CONST vDimensionType=26; {寸法の種類} VAR OT_info,G_info :STRING; itemResult :BOOLEAN; BEGIN itemIndex:=InsertLBItem(D_ID,iST_Lb,itemIndex,Num2Str(0,i)); CASE GetType(ST_hd[i]) OF tTEXT: OT_info:='文字列'; tDIMENSION: CASE GetObjectVariableInt(ST_hd[i],vDimensionType) OF 0: OT_info:='縦横寸法線'; 1: OT_info:='斜め寸法線'; 2: OT_info:='累進寸法線'; 3: OT_info:='半径寸法線'; 4: OT_info:='直径寸法線'; 5: OT_info:='角度寸法線'; END; tPLUGINOBJECT: OT_info:=Concat('PON=',GetName(GetRecord(ST_hd[i],1))); END; itemResult:=SetLBItemInfo(D_ID,iST_Lb,itemIndex,ST_Col.t,OT_info,-1); IF G_sw[i]=0 THEN G_info:=G0_name ELSE G_info:=G_name[G_sw[i]]; {G0_name for sort} itemResult:=SetLBItemInfo(D_ID,iST_Lb,itemIndex,ST_Col.g,G_info,-1); itemResult:=SetLBItemInfo(D_ID,iST_Lb,itemIndex,ST_Col.c,GetClass(ST_hd[i]),-1); itemResult:=SetLBItemInfo(D_ID,iST_Lb,itemIndex,ST_Col.f,GetFontName(GetObjectVariableInt(ST_hd[i],vFontID)),-1); itemResult:=SetLBItemTextColor(D_ID,iST_Lb,itemIndex,ST_Col.f,255,0,0); { itemResult:=SetLBItemUsingColumnDataItem(D_ID,iST_Lb,itemindex,ST_Col.f, InsertLBColumnDataItem(D_ID,iST_Lb,ST_Col.f,GetFontName(GetObjectVariableInt(ST_hd[i],vFontID)),-1,-1,0)); 同名のデータを設定できない −1が返る} itemResult:=SetLBItemInfo(D_ID,iST_Lb,itemIndex,ST_Col.s,Num2Str(0,GetObjectVariableReal(ST_hd[i],vFontSize)/in_mm*in_pt/ST_scale[i]),-1); itemResult:=SetLBItemTextColor(D_ID,iST_Lb,itemIndex,ST_Col.s,255,0,0); { itemResult:=SetLBItemUsingColumnDataItem(D_ID,iST_Lb,itemindex,ST_Col.s, InsertLBColumnDataItem(D_ID,iST_Lb,ST_Col.s,Num2Str(0,GetObjectVariableReal(ST_hd[i],vFontSize)/in_mm*in_pt/ST_scale[i]),-1,-1,0)); 同名のデータを設定できない −1が返る} itemIndex:=itemIndex+1; END; PROCEDURE Reset_Lb(ST_Col:Col); VAR i,itemindex, imageIndex :INTEGER; itemString :STRING; itemResult :BOOLEAN; BEGIN FOR i:=1 TO ST_num DO IF FindLBColumnItem(D_ID,iST_Lb,ST_Col.i,Num2Str(0,i),itemIndex) & IsLBItemSelected(D_ID,iST_Lb,itemIndex) THEN BEGIN SetObjectVariableInt(ST_hd[i],vFontID,DfontID[i]); SetObjectVariableReal(ST_hd[i],vFontSize,Dsize[i]); ResetObject(ST_hd[i]); itemResult:=SetLBItemInfo(D_ID,iST_Lb,itemIndex,ST_Col.f,GetFontName(DfontID[i]),-1); itemResult:=SetLBItemInfo(D_ID,iST_Lb,itemIndex,ST_Col.s,Num2Str(0,Dsize[i]/in_mm*in_pt/ST_scale[i]),-1); END; { FOR itemindex:=0 TO GetNumLBItems(D_ID,iST_Lb)-1 DO IF IsLBItemSelected(D_ID,iST_Lb,itemindex) & GetLBItemInfo(D_ID,iST_Lb,itemindex,ST_Col.i,itemString,imageIndex) THEN BEGIN i:=Trunc(Str2Num(itemString)); SetObjectVariableInt(ST_hd[i],vFontID,DfontID[i]); SetObjectVariableReal(ST_hd[i],vFontSize,Dsize[i]); ResetObject(ST_hd[i]); itemResult:=SetLBItemInfo(D_ID,iST_Lb,itemIndex,ST_Col.f,GetFontName(DfontID[i]),-1); itemResult:=SetLBItemInfo(D_ID,iST_Lb,itemIndex,ST_Col.s,Num2Str(0,Dsize[i]/in_mm*in_pt/ST_scale[i]),-1); END;} END; PROCEDURE Filter_GaC(ST_Col:Col); VAR i,itemindex :INTEGER; PROCEDURE Choice_C(VAR itemIndex:INTEGER; i:INTEGER); VAR j,CN :INTEGER; CS :STRING; BEGIN CN:=-1; FOR j:=1 TO CL_num DO BEGIN GetSelChoice(iC_Lbn,CN+1,CN,CS); IF CN<>-1 THEN {-1=選択なし} BEGIN IF GetClass(ST_hd[i])=CS THEN Insert_Lb(itemIndex,i,ST_Col); END ELSE j:=CL_num; END; END; PROCEDURE Choice_G(VAR itemIndex:INTEGER; i:INTEGER); VAR j,CN :INTEGER; CS :STRING; BEGIN CN:=-1; FOR j:=1 TO GL_num DO BEGIN GetSelChoice(iG_Lbn,CN+1,CN,CS); IF CN<>-1 THEN {-1=選択なし} BEGIN CASE G_sw[i] OF 0: IF G0_name=CS THEN Choice_C(itemIndex,i); OTHERWISE IF G_name[G_sw[i]]=CS THEN Choice_C(itemIndex,i); END; END ELSE j:=GL_num; END; END; BEGIN IF DeleteAllLBItems(D_ID,iST_Lb) THEN itemIndex:=0; FOR i:=1 TO ST_num DO Choice_G(itemIndex,i); END; PROCEDURE Change_FontSet(columIndex:INTEGER; ST_Col:Col); VAR i,itemindex, imageIndex :INTEGER; itemString :STRING; BEGIN FOR i:=1 TO ST_num DO IF FindLBColumnItem(D_ID,iST_Lb,ST_Col.i,Num2Str(0,i),itemIndex) & IsLBItemSelected(D_ID,iST_Lb,itemindex) THEN BEGIN IF ( columIndex=ST_Col.f ) & GetLBItemInfo(D_ID,iST_Lb,itemindex,columIndex,itemString,imageIndex) THEN SetObjectVariableInt(ST_hd[i],vFontID,GetFontID(itemString)); IF ( columIndex=ST_Col.s ) & GetLBItemInfo(D_ID,iST_Lb,itemindex,columIndex,itemString,imageIndex) THEN SetObjectVariableReal(ST_hd[i],vFontSize,Str2Num(itemString)/in_pt*in_mm*ST_scale[i]); ResetObject(ST_hd[i]); END; { FOR itemindex:=0 TO GetNumLBItems(D_ID,iST_Lb)-1 DO IF IsLBItemSelected(D_ID,iST_Lb,itemindex) & GetLBItemInfo(D_ID,iST_Lb,itemindex,ST_Col.i,itemString,imageIndex) THEN BEGIN i:=Trunc(Str2Num(itemString)); IF ( columIndex=ST_Col.f ) & GetLBItemInfo(D_ID,iST_Lb,itemindex,columIndex,itemString,imageIndex) THEN SetObjectVariableInt(ST_hd[i],vFontID,GetFontID(itemString)); IF ( columIndex=ST_Col.s ) & GetLBItemInfo(D_ID,iST_Lb,itemindex,columIndex,itemString,imageIndex) THEN SetObjectVariableReal(ST_hd[i],vFontSize,Str2Num(itemString)/in_pt*(in_mm)*ST_scale[i]); ResetObject(ST_hd[i]); END;} END; PROCEDURE Insert_FontData(ST_Col:Col); CONST { 初期値と同じ場合はFALSE} CT_Static=1; CT_MultiState=3; VAR i,itemindex, DataItemIndex, imageIndex :INTEGER; itemString :STRING; BEGIN RemoveAllLBColumnDataItems(D_ID,iST_Lb,ST_Col.f); RemoveAllLBColumnDataItems(D_ID,iST_Lb,ST_Col.s); IF GetNumSelectedLBItems(D_ID,iST_Lb)>1 THEN BEGIN FOR i:=1 TO ST_num DO BEGIN IF FindLBColumnItem(D_ID,iST_Lb,ST_Col.i,Num2Str(0,i),itemIndex) & IsLBItemSelected(D_ID,iST_Lb,itemindex) THEN BEGIN DataItemIndex:=InsertLBColumnDataItem(D_ID,iST_Lb,ST_Col.f,GetFontName(GetObjectVariableInt(ST_hd[i],vFontID)),-1,-1,0); DataItemIndex:=InsertLBColumnDataItem(D_ID,iST_Lb,ST_Col.s,Num2Str(0,GetObjectVariableReal(ST_hd[i],vFontSize)/in_mm*in_pt/ST_scale[i]),-1,-1,0); END; END; { FOR itemindex:=0 TO GetNumLBItems(D_ID,iST_Lb)-1 DO IF IsLBItemSelected(D_ID,iST_Lb,itemindex) & GetLBItemInfo(D_ID,iST_Lb,itemindex,ST_Col.i,itemString,imageIndex) THEN BEGIN i:=Trunc(Str2Num(itemString)); DataItemIndex:=InsertLBColumnDataItem(D_ID,iST_Lb,ST_Col.f,GetFontName(GetObjectVariableInt(ST_hd[i],vFontID)),-1,-1,0); DataItemIndex:=InsertLBColumnDataItem(D_ID,iST_Lb,ST_Col.s,Num2Str(0,GetObjectVariableReal(ST_hd[i],vFontSize)/in_mm*in_pt/ST_scale[i]),-1,-1,0); END;} IF GetLBControlType(D_ID,iST_Lb,ST_Col.f)<>CT_MultiState THEN IF NOT SetLBControlType(D_ID,iST_Lb,ST_Col.f,CT_MultiState) THEN AlrtDialog('Fail fCol_SetLBControlType_MultiState'); IF GetLBControlType(D_ID,iST_Lb,ST_Col.s)<>CT_MultiState THEN IF NOT SetLBControlType(D_ID,iST_Lb,ST_Col.s,CT_MultiState) THEN AlrtDialog('Fail sCol_SetLBControlType_Multi State'); END ELSE BEGIN IF GetLBControlType(D_ID,iST_Lb,ST_Col.f)<>CT_Static THEN IF NOT SetLBControlType(D_ID,iST_Lb,ST_Col.f,CT_Static) THEN AlrtDialog('Fail fCol_SetLBControlType_Static'); IF GetLBControlType(D_ID,iST_Lb,ST_Col.s)<>CT_Static THEN IF NOT SetLBControlType(D_ID,iST_Lb,ST_Col.s,CT_Static) THEN AlrtDialog('Fail sCol_SetLBControlType_Static'); END; { AlrtDialog(Concat(GetLBControlType(D_ID,iST_Lb,ST_Col.f),GetLBControlType(D_ID,iST_Lb,ST_Col.s)));} END; PROCEDURE Del_Box; VAR i :INTEGER; BEGIN FOR i:=1 TO ST_num DO IF BOX_hd[i]<>NIL THEN BEGIN DelObject(BOX_hd[i]); BOX_hd[i]:=NIL; {代入が必要、ハングを回避} END; END; PROCEDURE Draw_Box(ST_Col:Col; LVP_sw:INTEGER); VAR i,itemIndex :INTEGER; p1,p2 :POINT; BEGIN Del_Box; FOR i:=1 TO ST_num DO BEGIN IF FindLBColumnItem(D_ID,iST_Lb,ST_Col.i,Num2Str(0,i),itemIndex) & IsLBItemSelected(D_ID,iST_Lb,itemIndex) THEN BEGIN GetBBox(ST_hd[i],p1.x,p1.y,p2.x,p2.y); CASE LVP_sw OF lvDesign: Rect(p1.x,p1.y,p2.x,p2.y); lvSheet: Rect(p1.x/ST_scale[i],p1.y/ST_scale[i],p2.x/ST_scale[i],p2.y/ST_scale[i]); lvViewPort: Rect(p1.x,p1.y,p2.x,p2.y); END; BOX_hd[i]:=LNewObj; SetPenFore(BOX_hd[i],65535,0,0); SetFPat(BOX_hd[i],0); { SetDSelect(BOX_hd[i]);} END; END; END; FUNCTION Sort_List(L_ID:INTEGER):INTEGER; VAR L_str :DYNARRAY[] OF STRING; i,j,L_num :INTEGER; BEGIN L_num:=NumChoices(L_ID); IF L_num>1 THEN BEGIN ALLOCATE L_str[1..L_num]; FOR i:=1 TO L_num DO BEGIN GetChoiceStr(L_ID,0,L_str[i]); DelChoice(L_ID,0); END; SortArray(L_str,L_num,0); j:=0; InsertChoice(L_ID,j,L_str[1]); FOR i:=2 TO L_num DO IF L_str[i]<>L_str[i-1] THEN BEGIN j:=j+1; InsertChoice(L_ID,j,L_str[i]); END; END; Sort_List:=NumChoices(L_ID); END; FUNCTION SetupC_Lbn:INTEGER; VAR i: INTEGER; BEGIN FOR i:=1 TO ST_num DO InsertChoice(iC_Lbn,i-1,GetClass(ST_hd[i])); FOR i:=1 TO Sort_List(iC_Lbn) DO SelChoice(iC_Lbn,i-1,TRUE); SetupC_Lbn:=NumChoices(iC_Lbn); END; FUNCTION SetupG_Lbn:INTEGER; VAR i: INTEGER; G_info: STRING; BEGIN FOR i:=1 TO ST_num DO BEGIN IF G_sw[i]=0 THEN G_info:=G0_name ELSE G_info:=G_name[G_sw[i]]; InsertChoice(iG_Lbn,i-1,G_info); END; FOR i:=1 TO Sort_List(iG_Lbn) DO SelChoice(iG_Lbn,i-1,TRUE); SetupG_Lbn:=NumChoices(iG_Lbn); END; PROCEDURE SetupST_Lb(VAR ST_Col:Col); CONST STi_Ci=0; STi_Hs='No.'; STi_width=40; STt_Ci=1; STt_Hs='オブジェクトタイプ'; STt_width=100; STg_Ci=2; STg_Hs='グループ'; STg_width=80; STc_Ci=3; STc_Hs='クラス'; STc_width=60; STf_Ci=4; STf_Hs='フォント'; STf_width=80; STs_Ci=5; STs_Hs='サイズ(ポイント)'; STs_width=60; VAR i,itemIndex :INTEGER; itemResult :BOOLEAN; OT_info,G_info :STRING; BEGIN { IF NOT EnableLBSingleLineSelection(D_ID,iST_Lb,FALSE) THEN AlrtDialog('Fail EnableLBSingleLineSelection'); } EnableLBColumnLines(D_ID,iST_Lb,TRUE); ST_Col.i:=InsertLBColumn(D_ID,iST_Lb,STi_Ci,STi_Hs,STi_width); ST_Col.t:=InsertLBColumn(D_ID,iST_Lb,STt_Ci,STt_Hs,STt_width); ST_Col.g:=InsertLBColumn(D_ID,iST_Lb,STg_Ci,STg_Hs,STg_width); ST_Col.c:=InsertLBColumn(D_ID,iST_Lb,STc_Ci,STc_Hs,STc_width); ST_Col.f:=InsertLBColumn(D_ID,iST_Lb,STf_Ci,STf_Hs,STf_width); ST_Col.s:=InsertLBColumn(D_ID,iST_Lb,STs_Ci,STs_Hs,STs_width); itemIndex:=0; FOR i:=1 TO ST_num DO Insert_Lb(itemIndex,i,ST_Col); END; PROCEDURE HandleEvents( VAR item : LONGINT; data : LONGINT); CONST SelectionChange=-4; DataChange=-2; VAR {once} i,eventType,rowIndex,columIndex :INTEGER; BEGIN CASE item OF SetupDialogC: BEGIN SetupST_Lb(ST_Col); GL_num:=SetupG_Lbn; CL_num:=SetupC_Lbn; ALLOCATE BOX_hd[1..ST_num]; END; iST_Lb: BEGIN IF GetLBEventInfo(D_ID,iST_Lb,eventType,rowIndex,columIndex) THEN BEGIN { AlrtDialog(Concat(eventType));} CASE eventType OF SelectionChange: BEGIN Draw_Box(ST_Col,LVP_sw); Insert_FontData(ST_Col); END; DataChange: BEGIN Change_FontSet(columIndex,ST_Col); Draw_Box(ST_Col,LVP_sw); END; END; END; ReDrawAll; END; iG_Lbn,iC_Lbn: BEGIN Filter_GaC(ST_Col); Insert_FontData(ST_Col); Del_Box; ReDrawAll; END; iUd_Pb: BEGIN Reset_Lb(ST_Col); Draw_Box(ST_Col,LVP_sw); ReDrawAll; END; 2256: {=OK_Button,Cancel_Button:} Del_Box; END; END; BEGIN D_ID := CreateLayout('文字を統一',TRUE,'OK','キャンセル'); CreateGroupBox (D_ID,iST_Gb,'アクティブレイヤ上の文字系オブジェクト',TRUE); SetFirstLayoutItem (D_ID,iST_Gb); CreateLB (D_ID,iST_Lb,Lb_width,Lb_height); SetFirstGroupItem (D_ID,iST_Gb,iST_Lb); AlignItemEdge (D_ID,iST_Lb,AE_Right,iST_Gb,AM_Shift); SetHelpString(iST_Lb,'まず、統一したいオブジェクト(黒字)を選択してください 複数選択状態で、それぞれの項目(赤字)をクリックする度に変更します プラグインオブジェクト(PON)は更新されないので注意してください'); CreateGroupBox (D_ID,iG_Gb,'グループで絞り込む',TRUE); SetBelowItem (D_ID,iST_Lb,iG_Gb,0,0); CreateListBoxN (D_ID,iG_Lbn,Lbn_width,Lbn_height,TRUE); SetFirstGroupItem (D_ID,iG_Gb,iG_Lbn); SetHelpString(iG_Lbn,'グループを選択 複数選択が可能'); CreateGroupBox (D_ID,iC_Gb,'クラスで絞り込む',TRUE); SetRightItem (D_ID,iG_Gb,iC_Gb,0,0); CreateListBoxN (D_ID,iC_Lbn,Lbn_width,Lbn_height,TRUE); SetFirstGroupItem (D_ID,iC_Gb,iC_Lbn); SetHelpString(iC_Lbn,'クラスを選択 複数選択が可能'); CreatePushButton (D_ID,iUd_Pb,'元に戻す'); SetRightItem (D_ID,iC_Gb,iUd_Pb,0,0); AlignItemEdge (D_ID,iUd_Pb,AE_Right,iST_Gb,AM_Shift); SetHelpString(iUd_Pb,'選択しているオブジェクトを元の設定に戻します'); IF VerifyLayout(D_ID) THEN Dialog_SAC:=RunLayoutDialog(D_ID,HandleEvents); END; FUNCTION Get_ObjectTypeF(O_hd:HANDLE):BOOLEAN; CONST vFontStyleEnabled=800; {フォントメニューの設定を利用する} PROCEDURE Get_FontSet(O_hd:HANDLE; V_scale:REAL; G_sta:INTEGER); LABEL 99; BEGIN i:=i+1; IF i>ST_num THEN GOTO 99; ST_hd[i]:=O_hd; G_sw[i]:=G_sta; ST_scale[i]:=V_scale; DfontID[i]:=GetObjectVariableInt(O_hd,vFontID); Dsize[i]:=GetObjectVariableReal(O_hd,vFontSize); 99:END; BEGIN CASE GetType(O_hd) OF tTEXT,tDIMENSION: BEGIN Get_FontSet(O_hd,V_scale,G_sta); END; tPLUGINOBJECT: BEGIN IF GetObjectVariableBoolean(O_hd,vFontStyleEnabled)=TRUE THEN BEGIN Get_FontSet(O_hd,V_scale,G_sta); END; END; END; Get_ObjectTypeF:=FALSE; END; FUNCTION Get_GroupTypeF(TO_hd:HANDLE):BOOLEAN; CONST GT_Annotation=2; {ビューポート注釈} vVPScale=1003; {ビューポートの縮尺} {ForEachObjectInList} objOptions=0; {All} travOptions=1; {Groups} VAR FL_hd :HANDLE; Res :BOOLEAN; BEGIN IF IsVPGroupContainedObject(TO_hd,GT_Annotation) THEN BEGIN LVP_sw:=lvViewPort; V_scale:=GetObjectVariableReal(FSActLayer,vVPScale); END ELSE V_scale:=GetLScale(ActLayer); CASE GetType(TO_hd) OF tViewPort: BEGIN g:=g+1; G_name[g]:=GetName(TO_hd); V_scale:=GetObjectVariableReal(TO_hd,vVPScale); G_sta:=g; FL_hd:=FInGroup(GetVPGroup(TO_hd,GT_Annotation)); IF FL_hd<>NIL THEN ForEachObjectInList(Get_ObjectTypeF,objOptions,travOptions,FL_hd); END; tGROUP: BEGIN g:=g+1; j:=j+1; G_name[g]:=Concat('グループ-',j); G_sta:=g; FL_hd:=FInGroup(TO_hd); IF FL_hd<>NIL THEN ForEachObjectInList(Get_ObjectTypeF,objOptions,travOptions,FL_hd); END; OTHERWISE BEGIN G_sta:=0; Res:=Get_ObjectTypeF(TO_hd); END; END; IF i>ST_num THEN BEGIN AlrtDialog('オブジェト数が異常です'); Get_GroupTypeF:=TRUE; END ELSE Get_GroupTypeF:=FALSE; END; BEGIN AL_name:=GetLName(ActLayer); ST_num:=Count( INVIEWPORT & (L=AL_name) & (T IN [TEXT,DIMENSION,PLUGINOBJECT]) ); IF ST_num>0 THEN BEGIN ALLOCATE ST_hd[1..ST_num]; ALLOCATE G_sw[1..ST_num]; ALLOCATE ST_scale[1..ST_num]; ALLOCATE DfontID[1..ST_num]; ALLOCATE Dsize[1..ST_num]; END; G_num:=Count( INVIEWPORT & (L=AL_name) & ( (T=GROUP) | (ST=REGVIEWPORT) ) ); IF G_num>0 THEN ALLOCATE G_name[1..G_num]; IF GetObjectVariableInt(ActLayer,vLayerType)=ltSheet THEN LVP_sw:=lvSheet; IF GetObjectVariableInt(ActLayer,vLayerType)=ltDesign THEN LVP_sw:=lvDesign; i:=0; j:=0; g:=0; ForEachObjectInLayer(Get_GroupTypeF,objOptions,travOptions,layerOptions); {シートレイヤ上のビューポート内は処理しない travOptions=Groupsではカウントが難しい、トップビューのみを処理} { AlrtDialog(Concat(ST_num,',',G_num)); AlrtDialog(Concat(i,',',g));} ST_num:=i; G_num:=g; {グループが数に影響} IF ST_num=0 THEN BEGIN AlrtDialog('対象となるオブジェクトがありません'); GOTO 999; END; IF DIALOG_SAC(ST_num,G_num,LVP_sw)=Cancel_Button THEN BEGIN FOR i:=1 TO ST_num DO BEGIN SetObjectVariableInt(ST_hd[i],vFontID,DfontID[i]); SetObjectVariableReal(ST_hd[i],vFontSize,Dsize[i]); ResetObject(ST_hd[i]); END; ReDrawAll; END; 999:END; Run(SelectT_ChangeF);