#! ruby -Ks

##以下の例では TRichEdit，TButton，および TFindDialog が必要です。
##ボタンをクリックすると［検索］ダイアログボックスが表示されます。
##「FInd what」テキストを入力して［次を検索］ボタンをクリックすると，TRichEdit 内で一致する最初の文字列が選択されます。

require "phi"
require "dialogs"

form = Phi::Form.new
rich_edit1 = Phi::RichEdit.new form
button1 = Phi::Button.new form
button1.align = Phi::AL_BOTTOM
rich_edit1.align = Phi::AL_CLIENT

find_dialog1 = Phi::FindDialog.new

button1.on_click = proc{
# find_dialog1.position = Phi::Point.new(rich_edit1.left + rich_edit1.width, rich_edit1.top);
  find_dialog1.execute;
}

find_dialog1.on_find = proc{
p "on_find"
  if rich_edit1.sel_length != 0
    start_pos = rich_edit1.sel_start + rich_edit1.sel_length
  else
    start_pos = 0
  end
  to_end = rich_edit1.text.size - start_pos;
  found_at = rich_edit1.find_text(find_dialog1.find_text, start_pos, to_end, [Phi::ST_MATCH_CASE]);
  if found_at != -1
    rich_edit1.set_focus;
    rich_edit1.sel_start = found_at;
    rich_edit1.sel_length = find_dialog1.find_text.size;
  end
}

form.show
Phi.mainloop
