// 1文字ごとに色を割当てた // HTMLコードを出力します // 全角文字のみに対応しています PAINT { SetPal(9,bk_r,bk_g,bk_b) ; RBox(8,160,436,250,20,20,0,9) ; many = GetEditLength("ID_buf") / 2 ; // 文字列の文字数(全角) if(many <= 0){ return ; } r = (sp_r-st_r)/many ; // 1文字あたりの色の変化値 g = (sp_g-st_g)/many ; b = (sp_b-st_b)/many ; cr = st_r ; cg = st_g ; cb = st_b ; SetFont("MS ゴシック",italic) ; // 斜体の設定(フォント名は固定している) x = 30 ; y = 180 ; p = 0 ; s = size * 2 + 3 ; // HTML上の文字サイズをグラフィック上に変換(近似値) loop(many){ SetPal(8,cr,cg,cb) ; Box(x,y,x+s*2,y+6,8,8) ; AllSelectEdit("ID_sub") ; GetEditText("ID_buf",p,p+2,"ID_sub") ; Print(x,y+30,0,s,s*2,8,"ID_sub") ; x = x + s * 2 ; p = p + 2 ; cr = cr + r ; cg = cg + g ; cb = cb + b ; } } // 以下、各種コントロールを操作した場合の処理 ID_size { size = GetListPos("ID_size") + 1 ; call("PAINT") ; } ID_italic { italic = (italic + 1) % 2 ; SetButtonCheck("ID_italic",italic) ; call("PAINT") ; } ID_st_r { st_r = GetScrollPos("ID_st_r") ; call("PAINT") ; } ID_st_g { st_g = GetScrollPos("ID_st_g") ; call("PAINT") ; } ID_st_b { st_b = GetScrollPos("ID_st_b") ; call("PAINT") ; } ID_sp_r { sp_r = GetScrollPos("ID_sp_r") ; call("PAINT") ; } ID_sp_g { sp_g = GetScrollPos("ID_sp_g") ; call("PAINT") ; } ID_sp_b { sp_b = GetScrollPos("ID_sp_b") ; call("PAINT") ; } ID_bk_r { bk_r = GetScrollPos("ID_bk_r") ; call("PAINT") ; } ID_bk_g { bk_g = GetScrollPos("ID_bk_g") ; call("PAINT") ; } ID_bk_b { bk_b = GetScrollPos("ID_bk_b") ; call("PAINT") ; } // 初期化サブルーチン INIT { size = 3 ; // HTMLでの文字サイズ italic = 0 ; // 斜体フラグ st_r = 255 ; // 始点の色レベル st_g = 64 ; st_b = 64 ; sp_r = 128 ; // 終点の色レベル sp_g = 255 ; sp_b = 64 ; bk_r = 64 ; // 背景の色レベル bk_g = 128 ; bk_b = 255 ; SetScrollRange("ID_st_r",255) ; SetScrollPos("ID_st_r",st_r) ; SetScrollRange("ID_st_g",255) ; SetScrollPos("ID_st_g",st_g) ; SetScrollRange("ID_st_b",255) ; SetScrollPos("ID_st_b",st_b) ; SetScrollRange("ID_sp_r",255) ; SetScrollPos("ID_sp_r",sp_r) ; SetScrollRange("ID_sp_g",255) ; SetScrollPos("ID_sp_g",sp_g) ; SetScrollRange("ID_sp_b",255) ; SetScrollPos("ID_sp_b",sp_b) ; SetScrollRange("ID_bk_r",255) ; SetScrollPos("ID_bk_r",bk_r) ; SetScrollRange("ID_bk_g",255) ; SetScrollPos("ID_bk_g",bk_g) ; SetScrollRange("ID_bk_b",255) ; SetScrollPos("ID_bk_b",bk_b) ; SetListText("ID_size","1") ; SetListText("ID_size","2") ; SetListText("ID_size","3") ; SetListText("ID_size","4") ; SetListText("ID_size","5") ; SetListPos("ID_size",size-1) ; } CREATE { SetWinColor(16) ; SetWinSize(450,400) ; x = 8 ; y = 8 ; CreateControl(60,"文字列(全角)","ID",x,y,84,14) ; CreateControl(101,"グラデーション文字の作成","ID_buf",x+84,y-2,344,18) ; x = 8 ; y = 34 ; CreateControl(60,"文字サイズ","ID",x,y,60,16) ; CreateControl(33,"","ID_size",x+64,y-2,40,100) ; CreateControl(20,"斜体フォント","ID_italic",x+120,y,90,16) ; x = 8 ; y = 60 ; w = 128 ; h = 18 ; CreateControl(60,"始点色設定","ID",x,y,100,14) ; y = y + 18 ; CreateControl(70,"","ID_st_r",x,y,w,h) ; y = y + h + 2 ; CreateControl(70,"","ID_st_g",x,y,w,h) ; y = y + h + 2 ; CreateControl(70,"","ID_st_b",x,y,w,h) ; y = y + h + 2 ; x = 308 ; y = 60 ; CreateControl(60,"終点色設定","ID",x,y,100,14) ; y = y + 18 ; CreateControl(70,"","ID_sp_r",x,y,w,h) ; y = y + h + 2 ; CreateControl(70,"","ID_sp_g",x,y,w,h) ; y = y + h + 2 ; CreateControl(70,"","ID_sp_b",x,y,w,h) ; y = y + h + 2 ; x = 160 ; y = 60 ; CreateControl(60,"背景色設定","ID",x,y,100,14) ; y = y + 18 ; CreateControl(70,"","ID_bk_r",x,y,w,h) ; y = y + h + 2 ; CreateControl(70,"","ID_bk_g",x,y,w,h) ; y = y + h + 2 ; CreateControl(70,"","ID_bk_b",x,y,w,h) ; y = y + h + 2 ; x = 316 ; y = 270 ; CreateControl(20,"文字部分のみ作成","ID_type",x,y,120,16) ; y = y + 20 ; CreateControl(0,"HTMLコード作成","ID_go",x,y,120,20) ; y = y + 50 ; CreateControl(0,"← すべてコピー", "ID_copy",x,y,120,20) ; CreateControl(100,"","ID_html",8,270,300,110) ; CreateControl(101,"","ID_sub",0,0,0,0) ; } // チェックボタン(文字部分のみ作成) ID_type { if(GetButtonCheck("ID_type") == 0){ SetButtonCheck("ID_type",1) ; return ; } if(GetButtonCheck("ID_type") == 1){ SetButtonCheck("ID_type",0) ; return ; } } // HTMLコード作成 ID_go { n = GetEditLength("ID_buf") / 2 ; if(n <= 0){ return ; } AllSelectEdit("ID_html") ; ClearEdit("ID_html") ; if(GetButtonCheck("ID_type") == 0){ SetEditText("ID_html","<HTML>") ; SetEditCodeRet("ID_html") ; SetEditText("ID_html","<HEAD>") ; SetEditCodeRet("ID_html") ; SetEditText("ID_html","<TITLE>グラデーションテスト</TITLE>") ; SetEditCodeRet("ID_html") ; SetEditText("ID_html","</HEAD>") ; SetEditCodeRet("ID_html") ; SetEditText("ID_html","<BODY BGCOLOR=") ; SetEditCode("ID_html",34) ; SetEditText("ID_html","#") ; if(bk_r < 16){ SetEditText("ID_html","0") ; } SetEditData16("ID_html",bk_r) ; if(bk_g < 16){ SetEditText("ID_html","0") ; } SetEditData16("ID_html",bk_g) ; if(bk_b < 16){ SetEditText("ID_html","0") ; } SetEditData16("ID_html",bk_b) ; SetEditCode("ID_html",34) ; SetEditText("ID_html",">") ; SetEditCodeRet("ID_html") ; SetEditText("ID_html","<BR>") ; } r = (sp_r-st_r)/n ; g = (sp_g-st_g)/n ; b = (sp_b-st_b)/n ; cr = st_r ; cg = st_g ; cb = st_b ; SetEditCodeRet("ID_html") ; if(italic == 1){ SetEditText("ID_html","<I>") ; } p = 0 ; loop(n){ SetEditText("ID_html","<FONT FACE=") ; SetEditCode("ID_html",34) ; SetEditText("ID_html","MS ゴシック") ; SetEditCode("ID_html",34) ; SetEditText("ID_html"," SIZE=") ; SetEditCode("ID_html",34) ; SetEditData("ID_html",size,0) ; SetEditCode("ID_html",34) ; SetEditText("ID_html"," COLOR=") ; SetEditCode("ID_html",34) ; SetEditText("ID_html","#") ; if(cr < 16){ SetEditText("ID_html","0") ; } SetEditData16("ID_html",cr) ; if(cg < 16){ SetEditText("ID_html","0") ; } SetEditData16("ID_html",cg) ; if(cb < 16){ SetEditText("ID_html","0") ; } SetEditData16("ID_html",cb) ; SetEditCode("ID_html",34) ; SetEditText("ID_html",">") ; GetEditText("ID_buf",p,p+2,"ID_html") ; SetEditText("ID_html","</FONT>") ; p = p + 2 ; cr = cr + r ; cg = cg + g ; cb = cb + b ; } if(italic == 1){ SetEditText("ID_html","</I>") ; } SetEditText("ID_html","<BR>") ; SetEditCodeRet("ID_html") ; if(GetButtonCheck("ID_type") == 0){ SetEditText("ID_html","<BR>") ; SetEditCodeRet("ID_html") ; SetEditText("ID_html","</BODY></HTML>") ; SetEditCodeRet("ID_html") ; } SetEditCursol("ID_html",0,0) ; } // すべてコピー ID_copy { if(GetEditLength("ID_html") <= 0){ return ; } AllSelectEdit("ID_html") ; ClipEdit("ID_html") ; SetEditCursol("ID_html",0,0) ; MessBox("コピーしました ","すべてコピー",0,2) ; }