PROCEDURE Set_DefaultText; CONST { FP_PlugInsData=3;} FP_UserAppData=12; {注意:WinのUACによるファイルの仮想化} Folder_name='文字設定'; File_name='Font_List'; D_ID=32; OK_Button = 1; Cancel_Button = 2; iF_St=3; iS_St=4; iF_Pu=5; iS_Pu=6; iI_Sb=7; iD_Sb=8; iDF_Gb=9; iDF_St=10; FT_Static=1; FT_Edit=2; CT_PopUp=1; BT_Standard=1; pTextFontName=100; {アクティブドキュメントのフォントの名前} disableMask=62; {FormatTextDialog} VAR vwMajor,vwMinor,vwMaintenance,platform :INTEGER; osMajor,osMinor,osIncr :LONGINT; File_Path,Path_Sepa :STRING; i,Item :INTEGER; Done :BOOLEAN; F_num,F_CN,S_CN :INTEGER; fontName,Ssize :STRING; style :INTEGER; size :REAL; spacing :INTEGER; leading :REAL; hAlignment :INTEGER; vAlignment :INTEGER; FUNCTION FileExists ( fileName :STRING ) : INTEGER; BEGIN UseDefaultFileErrorHandling ( FALSE ); Open ( fileName ); IF ( GetLastFileErr = 0 ) THEN BEGIN Close ( fileName ); END; UseDefaultFileErrorHandling ( TRUE ); FileExists := GetLastFileErr; END; BEGIN Path_Sepa:='/'; { GetVersion(vwMajor,vwMinor,vwMaintenance,platform); GetOSVersion(osMajor, osMinor, osIncr); IF ( platform=1 ) & ( osMajor<9 ) THEN Path_Sepa:=':'; IF platform=2 THEN Path_Sepa:='\'; } File_Path:=concat(GetFolderPath(FP_UserAppData),'Plug-Ins',Path_Sepa,'DATA',Path_Sepa,Folder_name,Path_Sepa,File_name,'.txt'); BeginDialog(D_ID,1, 0, 0,230,205); SetTitle('デフォルト文字設定'); AddField('フォント',iF_St,FT_Static, 10, 10,110, 25); AddField('サイズ(ポイント)',iS_St,FT_Static, 120, 10,220, 25); AddChoiceItem('FONT',iF_Pu,CT_PopUp, 10, 30,110, 50); AddChoiceItem('SIZE',iS_Pu,CT_PopUp, 120, 30,220, 50); AddButton('フォントを追加',iI_Sb,BT_Standard, 10, 60,110, 80); AddButton('フォントを削除',iD_Sb,BT_Standard, 10, 90,110,110); AddGroupBox('現在の設定',iDF_Gb, 10,120,220,165); AddField(Concat(GetPrefString(pTextFontName),' ',GetDefaultTextSize,'ポイント'),iDF_St,FT_Static, 20,140,210,160); AddButton('OK',OK_Button,BT_Standard, 50,175,130,195); AddButton('キャンセル',Cancel_Button,BT_Standard, 140,175,220,195); EndDialog; Done:=FALSE; GetDialog(D_ID); IF FileExists(File_Path)<>0 THEN BEGIN fontName:=GetPrefString(pTextFontName); InsertChoice(iF_Pu,1,fontName); END ELSE BEGIN Open(File_Path); i:=1; WHILE NOT EOF(File_Path) DO BEGIN ReadLn(fontName); InsertChoice(iF_Pu,i,fontName); i:=i+1; END; Close(File_Path); END; {4,6,7,9,72,96,144} InsertChoice(iS_Pu,1,'8'); InsertChoice(iS_Pu,2,'10'); InsertChoice(iS_Pu,3,'12'); InsertChoice(iS_Pu,4,'14'); InsertChoice(iS_Pu,5,'18'); InsertChoice(iS_Pu,6,'20'); InsertChoice(iS_Pu,7,'24'); InsertChoice(iS_Pu,8,'28'); InsertChoice(iS_Pu,9,'36'); InsertChoice(iS_Pu,10,'48'); REPEAT DialogEvent(Item); CASE Item OF OK_Button: BEGIN Done:=TRUE; F_num:=NumChoices(iF_Pu); Rewrite(File_Path); FOR i:=1 TO F_num DO BEGIN GetChoiceStr(iF_Pu,i,fontName); WriteLn(fontName); END; Close(File_Path); END; Cancel_Button: Done:=TRUE; iI_Sb: BEGIN GetSelChoice(iF_Pu,1,F_CN,fontname); FormatTextDialog(fontName,style,size,spacing,leading,hAlignment,vAlignment,disableMask); InsertChoice(iF_Pu,1,fontName); SelChoice(iF_Pu,1,TRUE); END; iD_Sb: BEGIN IF NumChoices(iF_Pu)=1 THEN AlrtDialog('最低1つのフォントは必要です') ELSE BEGIN GetSelChoice(iF_Pu,1,F_CN,fontname); DelChoice(iF_Pu,F_CN); SelChoice(iF_Pu,1,TRUE); END; END; END; UNTIL Done; GetSelChoice(iF_Pu,1,F_CN,fontName); GetSelChoice(iS_Pu,1,S_CN,Ssize); ClrDialog; IF Item=OK_Button THEN BEGIN TextFont(GetFontID(fontName)); TextSize(Str2Num(Ssize)); AlertInform('設定を変更しました。',Concat(fontName,'、',Ssize,'ポイント'),FALSE); END; END; RUN(Set_DefaultText);