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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0513
mineHSP3.3bスクリプトエディタのURL文字列の色の変更方法9解決


mine

リンク

2011/5/13(Fri) 14:38:11|NO.39201

おにたまさん、みなさんこんにちは。
3.3β2リリースありがとうございます。

footy2使用のスクリプトエディタになり、
最終行で突然落ちるということがなくなって
とても安心して、作業できるようになりました。
(最後の最後で落ちるのが、一番きつかった…)

footy2になって、色分けが多少異なり、
カスタマイズしながら、使用しているのですが
URLを含む文字列の場合、青色になってしまいます。

どうも、クリッカブルURLに対応されたことでそうなっているようです。

さまざまな、アプリケーションが、
クリッカブルURLの文字色は青、点線のアンダーバーが付く
というのが、基本のようです。

スクリプトエディタのような、背景色が黒の場合、
青色は少し見にくいようです。
背景色を変えればいいのですが…出来れば黒のままでいきたいです。
(キーワードの色分けのバランスが良いので)

URLの色の変更は、出来ないものでしょうか?
クリッカブルURLの影響ならば、それを無効にしても良いのですが…。
footy2のSDKを見ても変更方法がわかりませんでした。

以前にも同じような投稿があったと思いますが、
なにか対策できる方法、機能追加があれば、よろしくお願いいたします。



この記事に返信する


さくら

リンク

2011/5/13(Fri) 21:10:37|NO.39204

Footy2SetColor関数というのが有り、その中で下記の定数が存在します。
この関数に色(RGB)を指定して挙げれば設定できるようです。

CP_URLUNDERLINE //URL下に表示されるアンダーライン
CP_URLTEXT //エディタのURLテキスト色

いずれにしても、HSPスクリプトエディタのツール→オプションで
設定項目を追加してもらうしか対処方法はないと思います。



dou

リンク

2011/5/14(Sat) 22:04:23|NO.39215

わたしもmineさんの意見に賛成です。
さらに文字列にメールアドレスが含まれている場合の色分けもお願いします。
できればダブルクリックしてもメールソフトが起動しないようするオプションもお願いします。
範囲選択するときにダブルクリックを多用するので不便なんです。



木村

リンク

2011/5/16(Mon) 18:05:10|NO.39238

 ふと思ったのですが、HSPエディタのソースコードはどこにあるのでしょうか?
 HSP本体がC++で作られているので、C++かHSP自体でエディタは作られていると思われます。

 なので、もしエディタのソースコードがあれば、ソースコード全体へ『CP_URLTEXT』を検索に掛けてやれば、http://云々の色分けを指定している場所が分かる気がします。
 そして、色の部分(COLORREF型ってArtlet2Dの32bitARGB形式の事かな?)を書き換えてからコンパイルしてエディタを作れば、http://云々の色が青ではないエディタが出来上がる気がします。

 また、関数やマクロ、プリプロセッサ命令の色分けの実装は、Footy2AddEmphasis関数が担っている気がします。
 ソースコードへ『Footy2AddEmphasis』を検索に掛けてやれば、強調処理の下準備を担っている場所が分かる気がします。
 自分で強調処理にしたいキーワードをそこに放り込んだ後でコンパイルしてエディタを作れば、現時点では未実装の色分けキーワード機能もどきもできるような気がします。

 ……もっとも、こんな単純な事で色分けキーワードが実装できるものなら、とっくにおにたま様がサクッと色分けキーワード機能を実装しているはずですよね…………



skyblue

リンク

2011/5/16(Mon) 18:35:45|NO.39239

>ふと思ったのですが、HSPエディタのソースコードはどこにあるのでしょうか?
探しました。
(未確認)

/trunk/tools/win32/hsed3f以下

/OpenHSP_svn.txtより



木村

リンク

2011/5/16(Mon) 19:23:18|NO.39240

>>skyblue様
 見つかりました。ありがとうございました。
 それと軽々しく質問して申し訳ありませんでした。改めて調べてみたら過去ログに似たような質問がありました。参考までにアドレスを書いておきます。
http://hsp.tv/play/pforum.php?mode=pastwch&num=32184
 hsed3の単語こそ無かったものの、本当に失礼をいたしました。



mine

リンク

2011/5/17(Tue) 07:41:10|NO.39245

どうも、返信が遅れました。
みなさん、どうもありがとうございます。

現在の正式版のスクリプトエディタの色分けは、
デフォルトのままで、色が配慮されていて、
モニタの輝度を落としても、見にくかったことはなかったです。

使用されている色は、白、水色、緑、黄色ぐらいですね。
青色は使用されていないような…。
どの色を色分けの色にするか、悩ましいところですが…。

あと、別件ですが、行番号の後ろの線が、
スクリプト記述領域にひっついていて、
ラベルなんかを付けたとき、行番号の後ろの線とラベル文字がひっかかって
なんとなく気になります。

1|*abc
2| a=1
3| b=2
↑↑
線と*がひっつく。

また、エディタのフォントでMS ゴシック,サイズ=12 にすると
1文字目の文字の1ドット列分が線と重なり、文字が欠けて見えます。

現在の正式版のスクリプトエディタでは、デフォルトでスクリプト記述領域は
線から1ドットあけて始まっているようです。
MS ゴシック,12の時も、線が重なることは無いようです。

3.3β版も同じように、表示出来ればありがたいです。
何か調整ができればと思います。

細かいことを言って申し訳ありませんが、対応して頂くとありがたいです。
(エディタとは、にらめっこしている時間が一番多いので、気になりますね。)

環境が許すなら、hsed3のソース、のぞいてみようかと思います。
(自分好みに、できるのはうれしい…。)



木村

リンク

2011/5/17(Tue) 22:20:19|NO.39250

 解決した話を蒸し返すようで悪いですが、hsed3_footy2中でURL及びURLの下線の色を定義していると思われる部分が見つかったみたいなので報告しておきます。


 hsed3_footy2は『hsed_vc2003』、『hsed_vc2005』、『hsed_vc2008』という3つの大きなフォルダ(MicroSoftVisualStudio2010Expressでは【ソリューション】なる名前で呼ばれているみたいですが)を含んでいます。
 新品の方が旧品よりも良いだろうと言う事で、私は『hsed_vc2008』というソリューションだけを開いて調べていたので、以下に書く事は全て『hsed_vc2008』だけでの話と考えてください。

 そして、hsed_vc2008の中身はこんな感じに分かれています。
※ ▷ :未展開のフォルダの意味
※ ◢ :展開済みのフォルダの意味

◢ ソリューション'hsed_vc2008'  ◢ Footy2   ▷ Charsets   ▷ DLL Functions   ▷ Document   ▷ Lines   ▷ View   ▷ ソース ファイル   ▷ ヘッダー ファイル   ▷ リソース ファイル   ▷ 外部依存関係   ReleaseNote_Footy.txt  ◢ hsed   ▷ ソース ファイル   ▷ ヘッダー ファイル   ▷ リソース ファイル   ▷ 外部依存関係   memo.txt


 結論から言えば、多分URLの色の定義をしているのは[Footy2]の[ソース ファイル]に含まれている『FottyStatus.cpp』というファイルです。
 このファイルのCFootyStatus::SetDefaultColor関数の中にある

m_clUrl = RGB(0,0,255); m_clUrlUnder = RGB(0,0,255);
という文面がURLの強調色のデフォルト値になっていると思われます。このRGBの部分を書き換えてやればURLの色も変わると思われます。


 多分、各種色情報は

① [Footy2]の[ソース ファイル]に含まれている『FottyStatus.cpp』で、   まずCOLORREF型に定義される ② [Footy2]の[ヘッダー ファイル]に含まれている『FootyStatus.h』で、   色情報をまとめる【CFootyStatus】モジュールの初期値として①の値が定義される ③ [Footy2]の[ソース ファイル]に含まれている『FootyView.cpp』で、   ビューの情報の初期化の際の初期値として②が定義される   (この段階で色情報は『m_pStatus』という別名に置き換えられる為、    他のスクリプトでは『m_pStatus>-m_clUrl』のような形で    色情報が参照されているらしい) ④ 色々なスクリプトで『SetTextColor(hDC,m_pStatus>-m_cl***);』みたいな形で、   実際に色情報が参照される
というような手順を踏んで『FootyStatus.cpp』から参照されていると思われます。


 [Footy2]の初期値を変える以外にも、さくら様のおっしゃられたFooty2SetColor関数を[hsed3]のどこかに噛ませてやる事でも、URLの色は変更させれるとは思います。
 ただ、そうなると、[hsed3]のどこが“一回”しか通過しない領域なのかを調べなければなりません。(複数回通過する場所に書き加えると処理時間の無駄、通過しない場所に書き加えるとただの置物)
 私には[hsed3]のどこが置き場所として正しいのか分からないので、初期値の段階で色を修正した方が良い気がします。 



mine

リンク

2011/5/17(Tue) 23:19:18|NO.39251

木村さん、ご苦労さまです。
やはり、なんか設定できるようになるといいですね…明るめの初期値で。

あと、前回の自己レスです。

前回のレスの、別件の行番号の後ろの線が、文字と重なる件ですが
行間の広さを0→1~2にすると、線が離れて、ちょうどいい具合になりました。
極端に30とかにすると、行番号の幅がかなり小さくなりますが…
現在の正式版のエディタと行間の広さの挙動が違うので、
きっと、0が入ってはいけないところに0が入っているのではと推測されます。
行番号の幅は、数値を変えて調整できるのでこのままでも、いいといえばいいですが…。

あと、C++には、ヘタレなので、footy2使用のスクリプトを参考に遊んでおります。
footy2には、「行間の広さ」の指定がないような…。どうしてるのかな…。



#uselib "Footy2.dll" #include "footy2.as" #define COLOR_COMMENT 0x00ff00; //... /* ... */ #define COLOR_FUNC 0xffff00; printf etc #define COLOR_STRING 0xc0ffff; "文字列" etc #define COLOR_SYSVAR 0xff00ff; int,char etc #define COLOR_MACRO 0xff55ff #define ctype RGB(%1,%2,%3) (%1|(%2<<8)|(%3<<16)) screen 0,640,480,0 Footy2Create hwnd, 0, 0, 600, 350, VIEWMODE_NORMAL if ( stat == FOOTY2ERR_ARGUMENT || stat == FOOTY2ERR_MEMORY ) : end idFooty = stat ;Footy2コントロールのHSPウインドウ上のIDを取得 ;強調表示の設定 ;関数型 Footy2AddEmphasis idFooty,"printf", 0,EMP_WORD,0,1,1,EMP_IND_BLANKS|EMP_IND_PARENTHESIS,COLOR_FUNC ;システム変数 Footy2AddEmphasis idFooty, "int" , 0,EMP_WORD,0,1,1,EMP_IND_BLANKS|EMP_IND_PARENTHESIS|EMP_IND_OTHER_ASCII_SIGN,COLOR_SYSVAR ;マクロ Footy2AddEmphasis idFooty, "macro", 0,EMP_WORD,0,1,1,EMP_IND_BLANKS|EMP_IND_PARENTHESIS|EMP_IND_OTHER_ASCII_SIGN,COLOR_MACRO ;コメント色分け Footy2AddEmphasis idFooty, "/*", "*/",EMP_MULTI_BETWEEN,0,1,1,EMP_IND_ALLOW_ALL,COLOR_COMMENT ;文字列色分け Footy2AddEmphasis idFooty, "\"", "\"",EMP_MULTI_BETWEEN,0,2,1,EMP_IND_ALLOW_ALL,COLOR_STRING ;エディタの各部位の色を設定 Footy2SetColor idFooty,CP_TEXT ,RGB($FF,$FF,$FF),1 ;通常テキスト色 Footy2SetColor idFooty,CP_BACKGROUND ,RGB($00,$00,$00),1 ;背景色 Footy2SetColor idFooty,CP_URLTEXT ,RGB($FF,$FF,$FF),1 ;URLのテキスト Footy2SetColor idFooty,CP_URLUNDERLINE,RGB($FF,$FF,$FF),1 ;URLの下線 Footy2SetColor idFooty,CP_MAILTEXT ,RGB($FF,$FF,$FF),1 ;メールアドレスのテキスト Footy2SetColor idFooty,CP_MAILUNDERLINE,RGB($FF,$FF,$FF),1 ;メールアドレスの下線 Footy2SetMetrics idFooty, SM_MARK_VISIBLE,EDM_HALF_SPACE,1 ;記号の表示(半角スペース) Footy2SetMetrics idFooty, SM_MARK_VISIBLE,EDM_FULL_SPACE,1 ;記号の表示(全角スペース) Footy2SetMetrics idFooty, SM_LINENUM_WIDTH, 50 ,1 ;行番号幅(0のとき非表示、設定時負の数でデフォルトに戻す) Footy2SetMetrics idFooty, SM_RULER_HEIGHT , 10 ,1 ;ルーラー高さ(0のとき非表示、設定時負の数でデフォルトに戻す) Footy2SetMetrics idFooty, SM_UNDERLINE_VISIBLE,1,1 ;行下線の表示状態(0のとき非表示、それ以外のとき表示) ; 色分けを反映 Footy2FlushEmphasis idFooty ; フォント Footy2SetFontFace idFooty, FFM_SHIFTJIS_CHARSET,"MS ゴシック", 1 Footy2SetFontSize idFooty, 12, 1 stop



mine

リンク

2011/5/17(Tue) 23:56:24|NO.39252

すみません、一応訂正しておきます。

>きっと、0が入ってはいけないところに0が入っているのではと推測されます。

きっと、「行間の広さ」が入ってはいけないところに
「行間の広さ」が入っているのではと推測されます。

に訂正します。



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