hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
hsedsdk/キャレットの位置を取得・変更する - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

キャレットの位置を取得・変更する

_HSED_GETCARETLINE,_HSED_GETCARETPOS,_HSED_GETCARETVPOS,_HSED_GETCARETTHROUGH,メッセージを使うことで任意のFootyのキャレットの位置を取得できます。

また、_HSED_SETCARETLINE,_HSED_SETCARETPOS,_HSED_SETCARETTHROUGH,メッセージを使うことで任意のFootyのキャレットの位置を変更できます。

hsedsdkのウィンドウメッセージはglobal指定されていないので、利用する際はマクロ名の後に必ず@hsedsdkと記述する必要があります。

モジュール

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#module
//
// 行のはじめを1としたキャレットの位置を取得
#deffunc hsed_getcaretpos var ret, int nFootyID
hsed_capture
if stat : return 1
sendmsg hIF@hsedsdk, _HSED_GETCARETPOS@hsedsdk, nFootyID
if stat <= 0 : return 1 : else : ret = stat : return 0
//
// スクリプトのはじめを1としたキャレットの位置を取得
#deffunc hsed_getcaretthrough var ret, int nFootyID
hsed_capture
if stat : return 1
sendmsg hIF@hsedsdk, _HSED_GETCARETTHROUGH@hsedsdk, nFootyID
if stat <= 0 : return 1 : else : ret = stat : return 0
//
// 行のはじめを0としたキャレットの位置(ルーラーに従う)を取得
#deffunc hsed_getcaretvpos var ret, int nFootyID
hsed_capture
if stat : return 1
sendmsg hIF@hsedsdk, _HSED_GETCARETVPOS@hsedsdk, nFootyID
if stat < 0 : return 1 : else : ret = stat : return 0
//
// キャレットのある行の行番号を取得
#deffunc hsed_getcaretline var ret, int nFootyID
hsed_capture
if stat : return 1
sendmsg hIF@hsedsdk, _HSED_GETCARETLINE@hsedsdk, nFootyID
if stat <= 0 : return 1 : else : ret = stat : return 0
//
// 行のはじめを1として、指定した位置にキャレットの位置を変更
#deffunc hsed_setcaretpos int nFootyID, int nCaretpos
hsed_capture
if stat : return 1
sendmsg hIF@hsedsdk, _HSED_SETCARETPOS@hsedsdk, nFootyID, nCaretpos
return
//
// スクリプトのはじめを1として、指定した位置にキャレットの位置を変更
#deffunc hsed_setcaretthrough int nFootyID, int nCaretthrough
hsed_capture
if stat : return 1
sendmsg hIF@hsedsdk, _HSED_SETCARETTHROUGH@hsedsdk, nFootyID, nCaretthrough
return
//
// 指定した行番号にキャレットの位置を変更
#deffunc hsed_setcaretline int nFootyID, int nLine
hsed_capture
if stat : return 1
sendmsg hIF@hsedsdk, _HSED_SETCARETLINE@hsedsdk, nFootyID, nLine
return
#global

サンプルスクリプト

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// キャレットの位置 取得・変更サンプル
hsed_exist
if stat {
hsed_getactfootyid nFootyID // 現在アクティブなFootyのIDを取得
 
hsed_getcaretpos nCaretpos, nFootyID
mes "キャレットは行のはじめを1バイトめとして、" + nCaretpos + "バイトめにあります。\n"
 
hsed_getcaretvpos nCaretvpos, nFootyID
mes "キャレットは行のはじめを0文字めとして、" + nCaretvpos + "文字めにあります。"
mes "※実際の文字数ではなく、エディタ上部にあるルーラーの指す位置\n"
 
hsed_getcaretline nLine, nFootyID
mes "キャレットは" + nLine + "行めにあります。\n"
 
hsed_getcaretthrough nCaretthrough, nFootyID
mes "キャレットはスクリプトのはじめを1バイトめとして、" + nCaretthrough + "バイトめにあります。"
hsed_gettextlength nTextlength, nFootyID
nPercent = 100 * (nCaretthrough - 1) / nTextlength
mes "スクリプトのサイズが" + nTextlength + "バイトなので、キャレットは" + nPercent + "%の位置にあります。\n"
 
mes "2行目にキャレットを移動します。"
hsed_setcaretline nFootyID, 2
; mes "スクリプトのはじめにキャレットを移動します。"
; hsed_setcaretthrough nFootyID, 1
; mes "現在の行のはじめにキャレットを移動します。"
; hsed_setcaretpos nFootyID, 1
} else {
mes "スクリプトエディタが起動していません。"
}
stop
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2007-08-05 (日) 09:33:24 (2317d)