PB缂栫▼鎶宸у疄渚
鍙戝竷: 2008-6-26 20:40 | 浣滆: admin | 鏌ョ湅: 145娆
闅忕潃鏁版嵁搴撴妧鏈湪鍚勮鍚勪笟鐨勫箍娉涘簲鐢紝浣滀负浼佷笟绾ф暟鎹簱鍓嶇寮鍙戝伐鍏风殑Power Builder鏃ョ泭鎴愪负寮鍙戜汉鍛樼殑寰楀姏鍔╂墜銆侾owerBuilder浠ュ叾寮鏀剧殑浣撶郴缁撴瀯锛屽弸濂界殑鐢ㄦ埛鐣岄潰鍜岀畝娲侀珮鏁堢殑寮鍙戠幆澧冭耽寰椾簡浼楀绋嬪簭鍛樼殑鍠滅埍锛岃繛缁骞磋璇勪负缇庡浗璁$畻鏈虹晫鐨勫勾搴﹂浜戜骇鍝侊紝鍦ㄦ暟鎹簱寮鍙戝伐鍏烽鍩熷崰鎹簡楂樿揪44锛呯殑甯傚満浠介銆侾owerBuilder杩涘叆鎴戝浗鐨勬椂闂翠笉闀匡紝璁稿缂栫▼浜哄憳甯屾湜浜嗚В骞舵帉鎻¤繖涓鍏堣繘宸ュ叿銆傚湪杩欓噷锛岀瑪鑰呭皢鑷繁骞虫棩鐢≒owerBuilder浣滃紑鍙戠殑涓浜涗綋浼氭暣鐞嗗嚭鏉ワ紝濂夌尞缁欏ぇ瀹躲
PowerBuilder鏄敱澶氫釜鍔熻兘妯″潡缁勬垚鐨勫彲瑙嗗寲闆嗘垚寮鍙戠幆澧冿紝鏄潰鍚戝璞$殑寮鍙戝伐鍏凤紝鐢ㄥ畠鍙互鏂逛究鍦板缓绔嬭捣鍩轰簬Windows鐨勫垎甯冨紡鏁版嵁搴撳簲鐢ㄣ傚叾鍔熻兘妯″潡鍒嗗埆瀹屾垚搴旂敤绠$悊銆佺獥鍙e璞¤璁°佽彍鍗曞璞¤璁°佹暟鎹獥瀵硅薄璁捐鍜屾暟鎹簱鏌ヨ绛夊伐浣滐紝杩欎簺鍔熻兘妯″潡鐢变簬PowerBuilder鎻愪緵鐨勮壊褰╀赴瀵岀殑宸ュ叿鏉¤岃绉颁綔"Painter"锛堢敾鏉匡級銆備笅鏂囦究渚濇嵁鍚勬ā鍧椾綔澶х殑鍒嗙被浠嬬粛鐩稿簲鐨勭紪绋嬫妧宸с
涓銆佹湁鍏冲簲鐢ㄧ殑缂栫▼鎶宸т粎璁╁簲鐢ㄧ▼搴忚繍琛屼竴娆$殑鎶宸:
鏈夋椂闇瑕侀檺鍒朵竴涓狿owerBuilder搴旂敤鍚屾椂杩愯鐨勫疄渚嬶紙Instance锛変釜鏁版垨浠呰搴旂敤杩愯涓娆★紝鎴戜滑鍙互閫氳繃璋冪敤WindowsSDK鍑芥暟鎴栦娇鐢≒owerBuilder鐨凥andle()鍑芥暟鏉ュ疄鐜般
鍏堣皥璋冪敤SDK鍑芥暟鐨勬柟娉曘備负浜嗚皟鐢⊿DK鍑芥暟锛岄渶瑕佸湪ApplicationPainter鐨勮彍鍗曢」Declare\GlobalExternalFunctions涓畾涔夛細
FunctionuintGetModuleHandle(stringModuleName)Library"Kernel.exe" FunctionuintGetModuleUsage(uintModuleHandle)Library"Kernel.exe"
涓嬮潰杩欐绋嬪簭鍐欏湪Application鐨凮pen浜嬩欢涓傚畠鍏堥氳繃璋冪敤SDK鍑芥暟GetModuleHandle()鑾峰緱鎸囧畾搴旂敤绋嬪簭鐨勫彞鏌勶紝鐒跺悗璋冪敤GetModuleUsage()鍑芥暟纭畾搴旂敤绋嬪簭鍚屾椂杩愯鐨勫疄渚嬩釜鏁般
uint IApplHandle
int App_num
IApplHandle=GetModuleHandle("ocmis.exe")
if IApplHandle>0 then
App_num=GetModuleUsage(IApplHandle)
if App_num>1 then
Messagebox("娉ㄦ剰","鏈▼搴忓凡缁忚繍琛!",Stopsign!)
return
endif
endif
Open(w_main)
鑻ラ渶瑕侀檺鍒跺簲鐢ㄥ悓鏃惰繍琛岀殑瀹炰緥涓暟锛屾瘮濡備粎鍏佽鍚屾椂杩愯N涓疄渚嬶紝閭d箞灏嗕笂杩扮▼搴忎腑鐨勮鍙 鈥渋f App_num>1 then鈥濇敼涓衡渋f App_num>N then鈥濆嵆鍙
閲囩敤Handle()鍑芥暟鐨勬柟娉曟洿绠娲佷竴浜涳紝浠g爜濡備笅锛
int hand
hand=Handle(this,TRUE)
If hand>0 then
Messagebox("娉ㄦ剰","鏈▼搴忓凡缁忚繍琛!",Stopsign!)
Halt
else
Open(w_main)
endif
浜屻佹湁鍏崇獥鍙g殑缂栫▼鎶宸
1銆佹彁渚涘疄鏃跺府鍔╂潯
涓枃涔嬫槦2.0鐗堢殑閾惧舰鑿滃崟绠$悊鍣ㄦ彁渚涗簡瀹炴椂甯姪鏉★紝澧炲己浜嗙郴缁熺殑鏄撶敤鎬э紝鍦≒owerBuilder涓篃鍙互瀹炵幇绫讳技鐨勫姛鑳姐傚綋榧犳爣绉诲姩鍒扮獥鍙d腑鐨勬煇浜涙帶鍒(Control)锛屽缂栬緫鍣ㄣ佸浘鐗囩瓑鏃讹紝浼氬湪榧犳爣闄勮繎鑷姩浜х敓甯姪鏉★紝瀹炴椂鍦版彁绀烘搷浣滆棰嗐
棣栧厛鍦ㄧ獥鍙_main涓换鎰忎綅缃畾涔変竴涓粍搴曢粦瀛楃殑闈欐佹枃鏈瑂t_help锛岃瀹歴t_help.visible=false锛宻t_help.text=&Help锛涚劧鍚庡湪璇ョ獥鍙fā鍧楃殑Declare\WindowFunctions...涓嬪畾涔夊嚱鏁皊how_help()锛屽叾鍙傛暟鍙湁涓涓紝鍙傛暟鍚嶄负text锛岀被鍨嬩负string锛岄氳繃浼犲兼柟寮忔帴鏀跺弬鏁帮紱鏃犺繑鍊笺俿how_help()浠g爜濡備笅锛
if st_help.visible then
return
endif
st_help.text=text
st_help.width=Len(st_help.text)*38
st_help.x=w_main.PointerX()
st_help.y=w_main.PointerY()+50
if st_help.x+st_help.width>w_main.Workspacewidth() then
st_help.x=w_main.Workspacewidth()-st_help.width
endif
if st_help.y+st_help.height>w_main.Workspaceheight()
then st_help.y=w_main.Workspaceheight()-st_help.height
endif
st_help.visible=true
鎺ヤ笅鏉ワ紝鎴戜滑灏卞彲浠ヨ皟鐢╯how_help()鍑芥暟浜嗐備絾PowerBuilder鎻愪緵鐨勬墍鏈夋帶鍒跺潎缂轰箯褰撻紶鏍囩Щ鑷冲叾涓婂氨瑙﹀彂鐨勪簨浠讹紝鏄剧劧锛岄渶瑕佸畾涔夌浉搴旂殑鐢ㄦ埛浜嬩欢銆傚厛閫変腑鍑嗗瀹氫箟鐢ㄦ埛浜嬩欢鐨勬帶鍒讹紝濡傛煇涓崟琛岀紪杈戝櫒锛岀劧鍚庡湪绐楀彛妯″潡鐨勮彍鍗旸eclare\UserEvents...涓嬶紝鍙屽嚮PasteEventID:涓殑pbm_mousemove鏉$洰锛屽皢鍏舵嫹璐濊嚦EventID涓嬶紝鍙朎ventName涓篗ouseon锛岃繖鏍凤紝鎴戜滑灏卞畾涔夊ソ浜嗙浉搴旀帶鍒剁殑鐢ㄦ埛浜嬩欢Mouseon銆傛垜浠彲浠ュ湪璇ユ帶鍒剁殑鐢ㄦ埛浜嬩欢Mouseon涓嬶紝鍐欎笅璋冪敤鍑芥暟show_help()鐨勮鍙ワ細
if st_help.visible then
Hide(st_help)
show_help("鐬!杩欎究鏄疄鏃跺府鍔╂潯!")
endif




发表于 2009-1-5 19:48
| 











