線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1542
推到 Plurk!
推到 Facebook!

如何給另一個Form中的變量傳值

答題得分者是:pedro
Jammy_Xu
一般會員


發表:3
回覆:3
積分:6
註冊:2004-01-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-27 10:55:33 IP:218.16.xxx.xxx 未訂閱
請問在delphi編程中常用到設置或登錄的Form﹐這些Form在完成后需要改變主程序變量的值﹐可是delphi好像只能改Form上控件的值﹐請問如何解決這個問題 *.dpr文件中定義的變量在表單中可以引用和修改嗎﹖如何做﹖
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-27 11:24:09 IP:210.61.xxx.xxx 未訂閱
如果該form已Create, 那麼直接指定給宣告於該form的public變數 即可給另一個Form中的變量傳值 另外的辦法是使用global變數 共用單元uglob裡放共有變數giBigValue然後在相關的單元裡use此uglob單元 即可達到多單元的變數分享
Jammy_Xu
一般會員


發表:3
回覆:3
積分:6
註冊:2004-01-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-27 11:52:57 IP:218.16.xxx.xxx 未訂閱
謝謝﹐明白了﹐use要加在interface里的use才可以直接引用﹗ *.dpr文件中宣告的變數可用嗎﹖
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-27 11:55:56 IP:203.203.xxx.xxx 未訂閱
*.dpr 中的修改需要用到 Tools service 還是妳只是要在 form 間傳遞數值? 發表人 - syntax 於 2004/01/27 11:58:24
Jammy_Xu
一般會員


發表:3
回覆:3
積分:6
註冊:2004-01-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-27 13:43:47 IP:218.16.xxx.xxx 未訂閱
我的思路是這樣的﹕ 我希望程式啟動后馬上就有登錄窗﹐登錄成功后再建主窗口(很多MRP﹐ERP是這樣登錄的) 我的dpr程序是這樣 Application.Initialize; Form0101:=TForm0101.Create(Application); Form0101.ShowModal; Form0101.Update; if Length(UserID)>0 then begin Application.CreateForm(TFormMain, FormMain); ... 所以我希望登錄窗 Form0101在登錄成功后就能改變 dpr程序中UserID的值﹐不知這種方法是否可行﹐我接觸Delphi不久﹐別見笑﹗
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-27 13:57:37 IP:210.61.xxx.xxx 未訂閱
如果您的UserID僅是用來判斷是否登入成功, 那麼有另一個思維可以解決同樣的結果 就是在Form0101某一段程式(可能掛在OK按鈕) 判斷使用者ID, 若成功繼續執行 若失敗, 則呼叫Application.Terminate 那麼就會打斷dpr裡 Application.CreateForm(xxxxx) 後面的程式執行, 即結束程式 如此就不必理會dpr需不需要有一個UserID變數作判斷 當然, 若是您的思路是在dpr裡需有個UserID來控管 那麼dpr及form0101可以共同引用宣告在uGlob單元的UserID 一樣可以達成您所述的要求 在form0101的OKClick裡 UserID:=xxxxx 在dpr裡 if UserID>0 then xxxx
系統時間:2024-06-08 12:17:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!