全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1521
推到 Plurk!
推到 Facebook!

不同form的資料轉換

答題得分者是:Chance36
BorlandUser
中階會員


發表:148
回覆:217
積分:73
註冊:2004-02-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-05 01:13:33 IP:218.102.xxx.xxx 未訂閱
如果有一張form,它會呼叫另一張form去做search,當找到結果後會回傳給呼叫它的form,那麼應該如何有效地在program做呢?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-05 01:55:36 IP:203.204.xxx.xxx 未訂閱
引言: 如果有一張form,它會呼叫另一張form去做search,當找到結果後會回傳給呼叫它的form,那麼應該如何有效地在program做呢?
BorlandUser 你好 我們先假設由MainForm呼叫SearchForm,一般的做法是 1.在SearchForm中設定個公用變數(Record、陣列或物件也行,視傳遞資料的型態及數量),一個儲存搜尋預設值另一個則為傳回資料用的, 2.在MainForm要呼叫前設定搜尋預設值,然後開啟SearchForm 3.SearchForm.OnShow 檢視搜尋預設值有沒有,沒有則直接Show畫面,有則先作搜尋動作後再Show畫面,待使用者確定後將要傳MainForm的值放入另一個變數中,若使用者按了取消鍵時最好清空傳遞用的變數。 4.回到MainForm後可以檢查傳遞用的變數是否有值(或判斷SearchForm.ModalResult=mrOK ),若有值,表示使用者完成了搜尋的動作,MainForm即可取得使用者搜尋確定的值了。 ps:方法不是只有一種,這只是我一般的作法,供你參考。重點在上述紅色文字部份,另外如此做只要MainForm uses SearchForm即可,讓SearchForm不會與MainForm挷太緊,而使得SearchForm可以獨立運作,你也可以把它(SearchForm)作成模組或物件。
BorlandUser
中階會員


發表:148
回覆:217
積分:73
註冊:2004-02-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-05 07:57:34 IP:203.218.xxx.xxx 未訂閱
正如你所說,會用變數去傳遞結果,但是如果我是在尋找一筆record呢?如果我只是傳遞primary key,那麼到了mainform 不是要用那primary key從新尋找一次呢?因為我應該不會把一筆record的每一個欄位都存放在變數嗎??? 還有,我不太懂用data module,如果要共用這個search form,應該如何做呢?將所有component拉到那data module,然後像平時一樣寫code嗎?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-05 08:26:25 IP:203.204.xxx.xxx 未訂閱
BorlandUser 你好 你也可以把TDataSet當作溝通的變數傳給SearchForm,有抄搜尋到則記錄指標保留在找到的那一筆就好了。
BorlandUser
中階會員


發表:148
回覆:217
積分:73
註冊:2004-02-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-05 08:38:25 IP:203.218.xxx.xxx 未訂閱
早安,那麼早便我的問題答了,感謝你
系統時間:2024-04-20 8:18:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!