熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PB編程 >> 正文

PowerBuilder編程技巧四則[1]

2013-11-12 23:34:15  來源: PB編程 
    用Enter鍵實現物件的焦點切換

  在PowerBuilder中已定義許多事件所對應的MessageID而在其所提供的元件
大部分有對應的keydown事件其ID值不一定相同例如在datawindow->pbm_dwnkey
singlelineedit->pbm_keydown其他參考使用手冊因此先對使用的元件新增key
的使用者事件當user在元件上按任何按鍵時將會觸發此keydown事件

  你將獲得所傳的參數key(按鍵代碼)keyflags(復合鍵代碼)當所按的
是Enter時你就把焦點切換到下一元件或下一欄位

  選擇要處理的datawindowcontrol然後選擇menu的declare的userevents
此時會顯示一個使用者事件box

  於eventname設定使用者事件名稱例如:ue_checkkey然後在eventID填入
pbm_dwnkey(或從Pasteevent選擇)然後按OK

  你可在datawindowcontrols的script中selectevent裡發現多了一個使用者
事件 ue_checkkey並且此事件會傳遞個參數keycodekeyunsignedlongkeyflags

  在script中可以如下填寫
  choose case key
  case KeyTab!//響應按Tab鍵
  //writeyourcode
  case KeyEnter!//響應按Enter鍵
  //writeyourcode
  case KeyEscape!//響應按Esc鍵
  //writeyourcode
  end choose
  注意()keycode是Enumeratedatatype可在onlinehelp或browers中獲得其屬性
  ()你可以設定returnvalue:
  如果是在DataWindow上可參考以下的方式:
  在DataWindow宣告一userevent:
  ()如ue_enter將EventID參考至pbm_dwnprocessenter
  ()在ue_enter加入以下的程式碼
  send(handle(this)long())
  return

  在MDI視窗內加入其他Controls並使其在sheets視窗中正確顯示

  把MDIWindow的ClientArea打開(Resize)ClientArea可視為一種ControlPB將
它的名字內定為MDI_

  //Example//mmrrareallinteger
  //movetheclientareatobeginat(mm)mdi_Move(WorkspaceX()+mWorkspaceY()+m)
  //Resizetheclientareabasedonthevalue(rr)yougivedmdi_Resize(rr)

  需要注意的是ClientArea打開後區域內的Control會被蓋掉

[]  []  


From:http://tw.wingwit.com/Article/program/PB/201311/11118.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.