windev的內部視窗傳參方式及其與類的相似性

2022-08-18 07:21:20 字數 1070 閱讀 2654

最近的應用,需要向乙個內部視窗(internal window)傳參,因為官方文件的說明較為寬泛,雖然結果只有兩小段**,但也費了很大的勁。把所有關於procedure的文件看一遍,又是重新學習了一遍c#的類與方法,才最終解決了這個問題。向內部視窗傳參,有三個方法可以使用,我使用的是第三種方法,以下會重點說明第三種方法:

方法一:如果是動態標籤頁(dynamic tab)的內部視窗,可以通過tabopen直接傳參,這個和視窗傳參的用法一樣,如下:

tabopen(tab_main, "

test of the new tab

", iwin_internalwindow,"

param1

","param2

")

方法二:如果是內部視窗控制項的內部視窗,可以用方法二和方法三。方法二直接用函式changesourcewindow來傳遞引數

方法三:因為我的應用不需要改變內部視窗,所以使用了procedure的方式來傳遞引數。步驟如下:

1、在內部視窗建立乙個local procedure,如:

procedure iwinparam(param1,param2)

//以下為**塊,param1和param2類似於行參

2、在放置內部視窗控制項的父視窗,呼叫步驟1自建的過程函式,並將實參傳遞過去,如:

//

其中iwctrl_controlname為內部視窗控制項的名稱,此處的param1和param2為實參

param1

isstring = "hi"

param2

isint = 123

iwctrl_controlname.iwinparam(param1,param2)

兩個步驟,即可完成引數傳遞,很簡單。但因為官方文件說明的隱晦,卻是讓人想破了腦袋,直到重新學習了一次c#的類和方法,才推斷官方文件中的說明,也許就是引用類方法的用法。事實證明,兩者的相似性是非常大的。內部視窗相當於乙個類,類的名稱就是父視窗中內部視窗控制項的名稱,而在內部視窗中自建的procedure,相當於類的乙個方法,所以用類名.方法名的方式,可以直接呼叫這個方法。

WPF多視窗傳參解決方案

在wpf中,我們的常常涉及到多個視窗之間傳遞引數的問題,那麼該怎麼傳呢?答 在視窗的建構函式中新增想要傳遞的引數。我表達不好,請看下面 在主視窗中單機button開啟乙個新的子視窗。主視窗類部分如下 public partial class mainwindow window private voi...

NSS 10 EXTJS給彈出的子視窗傳遞引數

在桌面程式中,如果需要彈出乙個子面板,並且需要傳一些引數給子面板,我通常的作法就是 在子面板新增對應的資料成員,然後乙個建構函式來接收這些引數並賦值級資料成員。實現起來非常方便。但是在 xtjs中要用此方便該怎麼辦呢?當然也需要在子面板中新增成員,新增建構函式。示例如下 首先定義乙個子類繼承wind...

flex向子視窗傳值 很簡單的辦法

var login infochange infochange popupmanager.createpopup this,infochange true login.x 250 login.y 150 login.userid.text dg.selecteditem.aa login.usern...