オブジェクト

Q1
選択範囲の取得・設定
A1

Biz/BrowserVではTextBoxとEditBoxに、選択範囲を取得・設定するメソッドが追加されました。
選択範囲は、カーソル位置と選択文字数によって表されます。

例:
カーソル位置:3 選択文字数:5

以下に、この機能を利用して文字列の検索・置換をするサンプルを紹介いたします。
本機能と文字列操作関数を組み合わせています。

[サンプルコード] ※記述ポイント抜粋
 
Form Form1 {
 …

 TextBox TextBox1 {
  …
 }
 Button Button1 {
  …
  Function OnTouch( e ) {
   var str1 = ^.EditBox1.Value;
   var str2 = ^.TextBox1.Value;
   
   /*選択範囲の後ろから検索を始める*/
   /*検索の初期位置=選択範囲の先頭位置+選択範囲の文字数*/
   var pos = ^.EditBox1.GetSelection(false)
                                   +^.EditBox1.GetSelection(true);
   var f = find(str1,str2,pos,1);
   if(f == -1) MessageBox("一致する文字列がありません","検索結果");
   
   /*見つけた単語に選択範囲を設定します*/
   /*EditBoxにフォーカスが無いと選択範囲は設定できません*/
   ^.EditBox1.SetFocus();
   /*選択範囲を設定:SetSelection(先頭位置,文字数)*/
   ^.EditBox1.SetSelection(f,Length(str2,1));
  }
 }

 …
 TextBox TextBox2 {
  …
 }
 Button Button4 {
  …
  Function OnTouch( e ) {
   var str1 = ^.EditBox1.Value;
   var str2 = ^.TextBox2.Value;
   
   /*置換の先頭位置=選択範囲の先頭位置*/
   var pos = ^.EditBox1.GetSelection(false);
      
   /*選択文字数が0でなければ置換をする*/
   if(^.EditBox1.GetSelection(true) != 0){
    /*消去する文字数=選択範囲の文字数*/
    var r = Replace(str1,pos,^.EditBox1.GetSelection(true),str2,1);
    ^.EditBox1.Value = r;
   }
  }
 }
 
 EditBox EditBox1 {
  …
 }
}


実際の挙動については、CRSファイル形式のサンプル
   「文字列の検索・置換(Obj50_002.zip)」
をご確認ください。

管理番号:Obj50_002
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser V・Biz/Designer V TIPS集 トップへ