| 第三十讲 窗口的深入 PowerBuild中拖放技术的应用(一) | ||||
| 通过前两讲,现在我们已经知道Windows API的消息传递,这只是Windows API最简单编程。 在下面的这两讲中,我们将介绍在PowerBuild中拖放技术的应用,拖放具有两个主要的组件:被拖对象和目标对象。我们来结合一个简单的示例程序加以说明。 建立一个新的Application对象,命名为Dragdrop。 新建一个窗口,命名为w_employee_xfer。 进入Application对象,打开Script画板的 Open事件,编程: SQLCA.DBMS = "ODBC" SQLCA.Database = "Powersoft Demo DB V6" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=Powersoft Demo DB V6;UID=dba;PWD=sql'" CONNECT; if SQLca.SQLCode <> 0 then show_db_error("网络数据库连接错误") halt end if open(w_employee_xfer) 选择Close事件,写入语句: disconnect; 打开w_employee_xfer窗口添加控件 添加TreeView控件并改变属性。 添加两个CommandButton控件改变其属性。 制作一个Datawindow命名为d_employees_by_dept。他的数据源是Powersoft Demo DB V6数据库中的employee表。 w_employee_xfer 的open事件编程:用于初始化TreeView控件,将后台数据按部门连接到TreeView控件的不同“目录中”。 ids_Source = Create DataStore ids_Source.DataObject = "d_emp_by_dept" ids_Source.SetTransObject(sqlca) Post Event ue_populate() TreeViewItem ltvi_Item SetPointer(HourGlass!) ltvi_Item.label = "R & D" ltvi_Item.data = 100 ltvi_Item.pictureindex = 1 ltvi_Item.selectedpictureindex = 7 ltvi_Item.children = True tv_1.InsertItemLast(0, ltvi_Item) ltvi_Item.label = "Sales" ltvi_Item.data = 200 ltvi_Item.pictureindex = 2 tv_1.InsertItemLast(0, ltvi_Item) ltvi_Item.label = "Finance" ltvi_Item.data = 300 ltvi_Item.pictureindex = 3 tv_1.InsertItemLast(0, ltvi_Item) ltvi_Item.label = "Marketing" ltvi_Item.data = 400 ltvi_Item.pictureindex = 4 tv_1.InsertItemLast(0, ltvi_Item) ltvi_Item.label = "Shipping" ltvi_Item.data = 500 ltvi_Item.pictureindex = 5 tv_1.InsertItemLast(0, ltvi_Item) 对窗口w_employee_xfer 的close事件编程:用于删除产生的DataStore Destroy ids_Source 对窗口w_employee_xfer 的resize事件编程:用于当窗口改变大小时重新更改TreeView控件的大小 tv_1.Height = newheight – 25 |
||||