HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0228
hp1220特定の文字を入れると色が変わる8未解決


hp1220

リンク

2011/2/28(Mon) 01:47:12|NO.37290

mesでOKやNOなどの特定の文字を入れると色が変わるというプログラムを作りたいのですが作り方を教えてください



この記事に返信する


ORZ

リンク

2011/2/28(Mon) 02:16:57|NO.37291

残念だがmesで文字を出すことはできるが入れることはできないんだなあ。
色より考え方を変えて、自分の質問内容をもう一度吟味しなさい。



玄冬

リンク

2011/2/28(Mon) 02:20:48|NO.37292

sdim a_test,50, 4,2
a_test(0,0)="何をどこに入れるのか詳しく教えてほしい","#000000"
a_test(0,1)="OK","#ff0000"
a_test(0,2)="NO","#0000ff"


button "普通",*test
button "OK",*test
button "NO",*test
stop

*test
v_n = stat

color $ff,$ff,$ff:boxf

color int("$" + strmid(a_test(1,v_n), 1, 2)), int("$" + strmid(a_test(1,v_n), 3, 2)), int("$" + strmid(a_test(1,v_n), 5, 2))
pos 200,100
mes a_test(0,v_n)



hp1220

リンク

2011/2/28(Mon) 03:54:52|NO.37293

color 255,0,0mes : "わかりずらくて"

color 0,255,87 : mes"すみません"
などcolorでいちいち設定しなくてもいいように
「わかりずらくて」などの単語が出てきたら自動的に色が変わるようにしたいのです



いなえ

リンク

2011/2/28(Mon) 09:49:46|NO.37294

命令の再定義を行えばよろしいかと。
以下例。

//mesの再定義 #undef mes #module #deffunc mes str s r=ginfo_r g=ginfo_g b=ginfo_g if s=="緑" : color 0,255,0 mes@hsp s color r,g,b return #global //テスト mes "赤" mes "緑" mes "青"
サンプルは「sample\misc\macro.hsp」にもございます。



玄冬

リンク

2011/2/28(Mon) 10:06:51|NO.37295


v_str="よくわからないけど、文脈に関係なくOKとかNOとかの色が変わればOK?\n機械的にするとOklahomaとかNoteとか単語の一部も色が変わってしまいますがokですか?noですか?\nあと\n×わかりずらい(NO!)\n○わかりづらい(OK!)\n\nですよ。" newcom oReg,"VBScript.RegExp" comres result oReg("IgnoreCase")= 1 oReg("Global")= 1 oReg("Pattern")= "(OK)" oReg->"Replace" v_str,"<span style=\"color:red\">$1</span>" v_str = result oReg("Pattern")= "(NO)" oReg->"Replace" v_str,"<span style=\"color:blue\">$1</span>" v_str = result oReg("Pattern")= "\n" oReg->"Replace" v_str,"<br>\n" delcom oReg sdim v_str v_str=result axobj IE, "Shell.Explorer.2", ginfo(12), 300 IE->"Navigate" "about:blank" pDocument = IE("Document") pDocument->"Open" pDocument->"Write" v_str pDocument->"Close"
IEコンポーネントとVBの正規表現の組み合わせですが、やりたいことはこういうことですか?

mesでこういうことをするのは難しいと思いますよ…



ひらまる

リンク

2011/2/28(Mon) 10:22:20|NO.37296

↓とりあえず実行してみてください。
おそらく望みどおりの結果が返ってくると思います。
addWordとsuperMesという2つの命令をつくりました。
内容について理解できなければ、する必要はありません。
ただ、#moduleから#globalまでを、プログラムの適当な場所(一番上とか下とか)にコピーすれば、
addWordとsuperMesが使用できます。

//モジュール #module //単語追加 #deffunc addWord str In_Word, int In_R, int In_G, int In_B if WordNum == 0 { WordArray( WordNum ) = "\n" WordR( WordNum ) = 0 WordG( WordNum ) = 0 WordB( WordNum ) = 0 WordNum ++ } WordArray( WordNum ) = In_Word WordR( WordNum ) = In_R WordG( WordNum ) = In_G WordB( WordNum ) = In_B WordNum ++ return //表示 #deffunc superMes str In_Mes MesWord = In_Mes MesNum = 0 MesIndex = 0 sdim MesArray dim MesR dim MesG dim MesB notesel MesWord repeat MesResult = -1 MesNew = strlen( MesWord ) + 1 MesNo = -1 repeat WordNum MesResult = instr( MesWord, MesIndex, WordArray( cnt ) ) if MesResult != -1 { if MesResult < MesNew { MesNew = MesResult MesNo = cnt } } loop MesArray( MesNum ) = strmid( MesWord, MesIndex, MesNew ) MesR( MesNum ) = 0 MesG( MesNum ) = 0 MesB( MesNum ) = 0 MesIndex += strlen( MesArray( MesNum ) ) MesNum ++ if MesNo != -1 { MesArray( MesNum ) = strmid( MesWord, MesIndex, strlen( WordArray( MesNo ) ) ) MesR( MesNum ) = WordR( MesNo ) MesG( MesNum ) = WordG( MesNo ) MesB( MesNum ) = WordB( MesNo ) MesIndex += strlen( MesArray( MesNum ) ) MesNum ++ } else { break } await 1 loop noteunsel StartX = ginfo_cx StartY = ginfo_cy DrawX = StartX DrawY = StartY repeat MesNum if MesArray( cnt ) != "" { pos DrawX, DrawY color MesR( cnt ), MesG( cnt ), MesB( cnt ) mes MesArray( cnt ) if MesArray( cnt ) == "\n" { DrawX = StartX DrawY += ginfo_mesy } else : DrawX += ginfo_mesx } loop return #global //サンプル addWord "赤", 255, 0, 0 addWord "緑", 0, 255, 0 addWord "青", 0, 0, 255 addWord "タ", 255, 0, 0 addWord "ト", 255, 255, 0 addWord "バ", 0, 255, 0 superMes "赤い文字や青い文字、\n改行して緑の文字までも出力できます。" pos 50, 50 superMes "pos命令で場所を指定することもできます。" pos 100, 100 Var = "タ!ト!バ!!" superMes Var + "のように、変数も問題なく表示できます。" //命令説明 ;addWord 文字列, R, G, B ;文字列に対応する色を設定します。 ;superMes 文字列 ;mes命令とまったく同じように使え、addWordで設定した色が反映されます。



雪崩の中の松茸

リンク

2011/3/1(Tue) 12:17:09|NO.37311

×「わかりずらい」
◯「わかりづらい」



hp1220

リンク

2011/3/1(Tue) 21:29:25|NO.37320

回答なさってくれた皆さんありがとうございます。
おかげで何とかなりそうです。
ありがとうございました。
-----------------------------------------------
「わかりづらい」でしたか。。。
日本語って難しいですねww



ONION software Copyright 1997-2023(c) All rights reserved.