PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
19840 03/07/01 10:33:44 RE(6):PB6.5: フォーカスの動き By volante
19826 03/06/27 16:54:34 RE(5):RE(5):PB6.5: フォーカスの動き By volante
19824 03/06/27 16:15:39 RE(4):PB6.5: フォーカスの動き(フォーカス制御) By まぁく
19823 03/06/27 16:05:11 RE(3):PB6.5: フォーカスの動き By まぁく
19813 03/06/26 11:50:29 RE(2):PB6.5: フォーカスの動き By volante
19809 03/06/25 15:56:10 RE(1):PB6.5: フォーカスの動き By まぁく
19807 03/06/25 14:21:27 PB6.5: フォーカスの動き By volante

カテゴリ:スクリプトの記述
日付:2003年06月27日 16:15 発信者:まぁく
題名:RE(4):PB6.5: フォーカスの動き(フォーカス制御)

スクリプトです(未確認ですが…)

【先祖Windowに、以下の処理を記述】
<Windiow.Instance Valiable>
Boolean ib_autofocus
integer ii_cntl
EditMask iem_cntl[]

<Window.event open()>
//Ue_AutoFocusの使用
ib_autofocus = true

if ib_autofocus then
 this.event ue_control_set()
end if

<Window.event ue_control_set():EditMaskコントロール一覧の作成>

PowerObject lpo_cntl //コントロール格納用
integer li_ub //Windowの全コントロール数
integer li_cnt_e //Editmaskの   〃
integer li_cnt //カウンタ

//**control取得
li_cnt_e = 0
ii_cntl = UpperBound(this.control)
for li_cnt = 1 to ii_cntl
  lpo_cntl = this.control[li_cnt]
  if  TypeOf(lpo_cntl) = EditMask! then
    li_cnt_e ++
    iem_cntl[li_cnt_e] = lpo_cntl
  end if
next

<Window.autofocus( powerobject apo ) returns boolean:フォーカスの移動>

integer     li_cnt  //カウンタ
integer     li_em   //EditMaskコントロール数

//**使用チェック & コントロール件数チェック
if not(ib_autofocus) then return false
li_em = UpperBound(iem_ctrl)
if li_em <= 0 then return false

//**フォーカスを移動するコントロールの決定
for li_cnt = 1 to li_em
  if  apo = iem_cntl[li_cnt] then
    if  li_cnt = li_em then
      iem_cntl[1].setfocus()
      return true
    else
      iem_cntl[li_cnt + 1].setfocus()
      return true
    end if
  end if
next

//**予期せぬエラー
return false

【u_anc_em(EditMaskの先祖クラス)を作成し、以下のスクリプトを先祖に記述】
<u_anc_em.event ue_keydown()※イベント[pbm_keydown]を貼り付ける事>
if keydown(KeyEnter!) then
 parent.dynamic event ue_autofocus(this)
end if

※:EditMaskは、このu_anc_emをウィンドウに貼り付けて下さい。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS Sybase SQL Anywhere Client
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.