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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
1228
さかfooty2 行番号クリック動作11解決


さか

リンク

2014/12/28(Sun) 19:37:35|NO.66687

footy2で行番号をクリックした場所にアイコン表示させようと思います。
行番号欄以外をクリックした場合は期待した動作するのですが、行番号をクリックすると
1つ下の行が選択されてしまいます。
どこの設定を行えばよいでしょうか。ご教示お願いします。

#uselib "Footy2.dll"
#include "footy2.as"

Footy2Create hwnd, 0, 0, ginfo_winx, ginfo_winy, VIEWMODE_NORMAL

txt="111\n222\n333\n444\n555\n666\n777"
Footy2SetSelText idFooty,varptr(txt)

oncmd *wndmsg_ContextMenu ,$210
stop
*wndmsg_ContextMenu
if wparam!513: return
iLine=-1: iPos=-1: iIcon=-1
Footy2GetCaretPosition idFooty, varptr(iLine), varptr(iPos)
Footy2GetLineIcon idFooty, iLine, varptr(iIcon) // icon取得
if iIcon!LINEICON_RECORD{
Footy2SetLineIcon idFooty,iLine,LINEICON_RECORD,1
}else{
Footy2SetLineIcon idFooty,iLine,0,1
}
stop



この記事に返信する


tds12

リンク

2014/12/28(Sun) 20:29:17|NO.66689

Footy2GetCaretPosition idFooty, varptr(iLine), varptr(iPos)

Footy2GetSel idFooty, varptr(iLine), varptr(iPos), 0, 0
に変更すると良いと思います。



さか

リンク

2014/12/28(Sun) 23:05:46|NO.66692

tds12さん、回答ありがとうございます。

なるほど、選択位置の取得ですね。

ついでに次の行が選択されてるようで気持ち悪いので選択行の一番最後の位置へキャレット
移動しようと思います。
len=Footy2GetSelLength(idFooty, LM_CRLF)
で選択の長さを取得しようと思ったのですが外部DLL取得エラーとなってしまいます。
なにか記述が悪いでしょうか。



tds12

リンク

2014/12/28(Sun) 23:35:05|NO.66693

footy2.asの記述が悪いようです。
#cfunc Footy2GetSelLength "Footy2GetSelLength" int, int
とありますが、
#cfunc Footy2GetSelLengthA "Footy2GetSelLengthA" int, int
が正しいようです。
解決策としては、

#uselib "Footy2.dll" #cfunc Footy2GetSelLengthA "Footy2GetSelLengthA" int, int #cfunc Footy2GetSelLengthW "Footy2GetSelLengthW" int, int
をスクリプトの先頭に追加し、Footy2GetSelLengthAを呼び出すという方法があります。



さか

リンク

2014/12/29(Mon) 00:06:29|NO.66694

footy2.asの記述ミスですか。tds12さん、ありがとうございます。

更に教えてもらって良いでしょうか。(^^;
"〜"で色を変えたいのですが
Footy2AddEmphasis footyId, "\"", "\"",EMP_LINE_BETWEEN,0,1,1,EMP_IND_ALLOW_ALL ,$00AAAA
だと、\"を無視してくれません。
色々やってみたのですが、どう記述すれば良いのでしょうか。



tds12

リンク

2014/12/29(Mon) 00:54:10|NO.66696

Footy2AddEmphasis footyId, "\\\"", "\\\"",EMP_LINE_BETWEEN,0,2,2,EMP_IND_ALLOW_ALL ,$00AAAA
これを追加してあげればよいはずです。



さか

リンク

2014/12/29(Mon) 01:30:19|NO.66697

tds12さん、ありがとうございます。
でも、やってみましたがうまく行きませんでした。
nPermissionで前に\があると無視(許可)するみたいな記述かなと思うのですが違いますかね。



tds12

リンク

2014/12/29(Mon) 12:45:23|NO.66698

Footy2AddEmphasis footyId, "\"", "\"",EMP_LINE_BETWEEN,0,1,1,EMP_IND_ALLOW_ALL ,$00AAAA
Footy2AddEmphasis footyId, "\\\"", "\\\"",EMP_LINE_BETWEEN,0,2,2,EMP_IND_ALLOW_ALL ,$00AAAA
この2つがスクリプトに含まれるようにしてください。
意味は""の間にあるときのみ\"\"内を色付けするということです。
footy2のpdfもよく見てください。



さか

リンク

2014/12/29(Mon) 14:05:07|NO.66700

tds12さん、何回もありがとうございます。
一応、pdfも読んで動作は理解しているつもりなんですが意図が伝わっていないかも知れません。
例えば、「"\"","\""」とある場合、「"\""」と「"\""」は00AAAA色で「,」は黒にしたいです。
hspエディタと同じです。
以下、ご教示してもらった実行です。
#uselib "Footy2.dll"
#include "footy2.as"
Footy2Create hwnd, 0, 0, ginfo_winx, ginfo_winy, VIEWMODE_NORMAL
Footy2AddEmphasis footyId, "\"", "\"",EMP_LINE_BETWEEN,0,1,1,EMP_IND_ALLOW_ALL ,$00AAAA
Footy2AddEmphasis footyId, "\\\"", "\\\"",EMP_LINE_BETWEEN,0,2,2,EMP_IND_ALLOW_ALL ,$00AAAA
txt="123\"ab\",\"cd\"456\n123\"\\\"\",\"\\\"\"456\n123\"\\\\\\\"\",\"\\\\\\\"\"123\n"
Footy2SetSelText idFooty,varptr(txt)
stop
お手数おかけします。



tds12

リンク

2014/12/29(Mon) 14:31:21|NO.66701

すみません。間違えていました。
Footy2AddEmphasis footyId, "\\\"", "",EMP_LINE_BETWEEN,0,2,2,EMP_IND_ALLOW_ALL ,$00AAAA
こちらが正しいです。
明日から1月2日までインターネット接続のない環境へ出かけるので、しばらく返事ができません。



さか

リンク

2014/12/30(Tue) 01:24:51|NO.66711

おー、出来ました。
コメントにしたときに\"が優先になってしまいますが、色々やってみます。
助かりました。ありがとうございます。



さか

リンク

2014/12/30(Tue) 02:09:43|NO.66713

コメントもうまく出来ました。
解決とさせて頂きます。
tds12さん、ありがとうございました。



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