12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- $PBExportHeader$uo_mle_demo.sru
- forward
- global type uo_mle_demo from multilineedit
- end type
- end forward
- global type uo_mle_demo from multilineedit
- integer width = 1486
- integer height = 540
- event keydown pbm_keydown
- event keyup pbm_keyup
- event ue_textchanged ( )
- event char pbm_char
- event ue_topmost ( string arg_in, ref string arg_out )
- end type
- global uo_mle_demo uo_mle_demo
- type variables
- private:
- string _oldtext
- public:
- string Separater[] = {";", "~r~n"}
- end variables
- event keyup;if this._oldtext <> this.text then
- this.trigger event ue_textChanged()
- end if
- this._oldtext = this.text
- end event
- event ue_textchanged();string ls_org, ls_parm, ls_des
- long ll_start, ll_end, ll_pos
- long ll_selStart, ll_selLen, ll_tmp
- string ls_separater
- long i
- ll_start = 1
- do while (true)
- ll_pos = 0
- for i = 1 to upperbound(this.separater)
- ll_tmp = pos(this.text, this.separater[i], ll_start)
- if ll_tmp = 0 then continue
- if ll_pos = 0 or ll_tmp < ll_pos then
- ll_pos = ll_tmp
- ls_separater = this.separater[i]
- end if
- next
- if ll_pos = 0 then
- ll_end = len(this.text)
- exit
- end if
- if ll_pos >= this.Position( ) then
- ll_end = ll_pos - 1
- exit
- else
- ll_start = ll_pos + len(ls_separater)
- end if
- loop
- ls_parm = mid(this.text, ll_start, ll_end - ll_start + 1)
- if trim(ls_parm) = '' then
- return
- end if
- this.trigger event ue_topmost(ls_parm, ls_des)
- ll_selStart = ll_start + len(ls_parm)
- ll_selLen = len(ls_des) - len(ls_parm)
- this.text = mid(this.text, 1, ll_start - 1) + ls_des + mid(this.text, ll_end + 1, len(this.text) - ll_end)
- this.selecttext(ll_selStart, ll_selLen)
- end event
- event char;if key = '~r' and this.selectedlength( ) > 0 then
- this.selecttext(this.selectedstart() + this.selectedlength(), 0)
- return 1
- end if
- if this.selectedlength( ) > 0 then
- this.clear()
- end if
- this._oldtext = this.text
- end event
- event ue_topmost(string arg_in, ref string arg_out);arg_out = arg_in
- end event
- on uo_mle_demo.create
- end on
- on uo_mle_demo.destroy
- end on
- event constructor;this._oldtext = this.text
- end event
|