呼叫其他子form 傳值問題 |
答題得分者是:kevin2004
|
ttring
一般會員 發表:11 回覆:23 積分:16 註冊:2008-11-19 發送簡訊給我 |
不好意思, 再請問一下各位大大
目前做一個查詢介面, 會在dbgrid3 查出許多單號 db1 是我拿來抓取目前點選的單號是那個 在連點時, 判斷單號不為空白時 就呼叫該單子的程式開啟 frmana 有設公共變數 g_no 來接 但這時會有err 還是我應該在frmana 那來抓frmqan的db1的值 @@ procedure Tfrmqan.DBGrid3DblClick(Sender: TObject); begin IF db1.Text <> '' THEN begin IF Not mainfrm.chkauth('ana001','','Y') THEN exit; with TfrmAna.Create(Application) do begin // frmana.g_no := db1.text; Show; end; END; end; |
ttring
一般會員 發表:11 回覆:23 積分:16 註冊:2008-11-19 發送簡訊給我 |
目前是解決了, 但是需要透過主form
formstyle 為 fsMDIChild 的子form 不能互傳值嗎? 抓主form 的 public 變數, 就沒問題 但子form 彼此抓對方的public 變數, 都不行?, ? 真是又打擾各位大大了 ^^|| ===================引 用 ttring 文 章=================== 不好意思, 再請問一下各位大大 目前做一個查詢介面, 會在dbgrid3 查出許多單號 db1 是我拿來抓取目前點選的單號是那個 在連點時, 判斷單號不為空白時 就呼叫該單子的程式開啟 frmana 有設公共變數 g_no 來接 但這時會有err 還是我應該在frmana 那來抓frmqan的db1的值 @@ procedure Tfrmqan.DBGrid3DblClick(Sender: TObject); begin IF db1.Text <> '' THEN begin IF Not mainfrm.chkauth('ana001','','Y') THEN exit; with TfrmAna.Create(Application) do begin // frmana.g_no := db1.text; Show; end; END; end; |
pprayer
高階會員 發表:35 回覆:185 積分:174 註冊:2002-03-13 發送簡訊給我 |
|
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
|
ttring
一般會員 發表:11 回覆:23 積分:16 註冊:2008-11-19 發送簡訊給我 |
謝謝大大的解說
不過說真的, 還是沒有解開我的疑惑?? 子form互抓變數內容, 沒問題, 有公式化解法 那是否有相關文章連結可以看, 或大大解說一下?? 或在本站用關鍵字, 公式化解法, 可以搜尋得到?.? 最老, 最不好, 嗯...在新手區發問, 當然是新手 但觀念很直覺, 物件的public 變數, 要存取應該是OK的啊 啊 個人覺得是與其評價新手的做法, 不如教育新手如何去解決問題 來得有價值 fsMDIform 不是個好東西... 那要用什麼好東西比較好, 前提是free ^^ 設母子form 是為了控制 子form 不會跑到母form 的後面去 只要有這功能, 又不用我程式自行開發, 我很樂意接受好東西的 但一樣...用好東西去搜尋 我想和大海撈針一樣 ===================引 用 kevin2004 文 章=================== 抓主form 的 public 變數, 就沒問題 但子form 彼此抓對方的public 變數, 都不行?, ? ==>主子Form互抓變數內容,當然沒問題,有公式化解法的 ==>不過你是用了最老,最不好的解法 formstyle 為 fsMDIChild 的子form 不能互傳值嗎? ==>答案同上 ==>fsMDIForm不是個好東西,要避免用 |
ttring
一般會員 發表:11 回覆:23 積分:16 註冊:2008-11-19 發送簡訊給我 |
|
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
子form互抓變數內容, 沒問題, 有公式化解法
那是否有相關文章連結可以看, 或大大解說一下?? 或在本站用關鍵字, 公式化解法, 可以搜尋得到?.? public g_no : string; { Public declarations } 在子form 的 public 區 ======================================= ttring兄 實在很抱歉,最近太忙了,現在才回覆 我現只能很快寫幾個字,實在是忙昏頭,等下班後在找時間回覆 兩Form互相使用有其規定的用法,..
------
Kevin |
ttring
一般會員 發表:11 回覆:23 積分:16 註冊:2008-11-19 發送簡訊給我 |
^^ 謝謝 kevin大
有空再回就好了, 問題先結案^^ ===================引 用 kevin2004 文 章=================== 子form互抓變數內容, 沒問題, 有公式化解法 那是否有相關文章連結可以看, 或大大解說一下?? 或在本站用關鍵字, 公式化解法, 可以搜尋得到?.? public g_no : string; { Public declarations } 在子form 的 public 區 ======================================= ttring兄 實在很抱歉,最近太忙了,現在才回覆 我現只能很快寫幾個字,實在是忙昏頭,等下班後在找時間回覆 兩Form互相使用有其規定的用法,.. |
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
|
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
|
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
fsMDIform 不是個好東西...
那要用什麼好東西比較好, 前提是free 只要有這功能, 又不用我程式自行開發, 我很樂意接受好東西的 設母子form 是為了控制 子form 不會跑到母form 的後面去 ==>可能我講的是很偏頗,也可能是我的Delphi-MDIForm沒學起來,或是 要推說Delphi的MDIForm的功能很有限,不像是MS產品那樣耍的虎虎 生風。所以『fsMDIform 不是個好東西...』這句純粹是個人感觀的 意思。 ==>不過,MDIForm實在控制起來很不方便,而且這變成都綁在一起了,不 能寫成到處共用的功能,這就太不經濟了,從商業角度考量,彼此干 擾及共用度低,這是會致命的設計。 ==>查詢可以單獨寫成一支功能很強的共用查詢,你只要將查詢條件或SQL 命令傳進去,在裏面再允許客戶作篩選條件設定就好。你現在用MDI ,並不好。 ==>如果這是個要聯在一起的畫面應用,你該設成Master-Detaile更合理 ,更省事,更直覺。 ==>通常有了PageControl以後,MDI的需求就降低很多。 ==>PageControl是Delphi內附的元件,不用錢的。有很多很強很好用的 控制架構。當然它也有缺點,它的Tab不能顯示顏色、它不能像 Eclipse般點一下TAB就將整個Page放大縮小、如各Page用於顯示不 同的memo欄位內容時它也不能用不同顏色顯示memo欄是否有內容或 依內容重要性作不同外觀顯示。 ==>建議改用專用的查詢Form,只傳條件或SQL字串就好。你原先講的問題 通通沒有。 ==>如果這是一個要切的很緊密的應用,或由子Form還要回來控制母Form ,那建議你用Master-Detail畫面。
------
Kevin |
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
抓主form 的 public 變數, 就沒問題
但子form 彼此抓對方的public 變數, 都不行 ==>回到主題來。 ==>甲已兩Form互用彼此變數,只要將包裝等級設為form.public下就可以了。 ==> 只要甲Form在implementation-uses下uses乙Form的Unit,而乙Form在 ==> implementation-uses下也uses甲Form的Unit就好了。 ==>千萬不可在interface-uses中uses另一unit。這是Delphi-Compiler設 ==> 計原理的關係。在Interface中有Uses到的unit,在Compiler本Unit時 ==> 會先檢視Compiler被Uses的Unit是否需要先被Compiler,而在 ==> implementation下Uses的Unit不會受到這樣待遇的。 ==>只要依循這裏講的,就沒問題了。
------
Kevin |
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
其實Delphi真有點老態了,而且自從Borland風流雲散,精英盡去,多年來缺乏財力
物力支援,真有點欲振乏力。就拿Unicode來講,我們從D5,D6就反應了多少年 ,Borland一概置之不理﹝大概是錢都丟到別地方去了﹞,一直到這些Delphi/BCB 都被Borland賣掉,一直到2008年搶先出的Delphi2009才有Unicode出現,而同版次 的RAD Studio 2009也要在2009下半年才出。在Java與.NET中很多很新很重要東西, 你才只能Delphi2009中看到一點不太成熟的外貌。而Delphi中有不少老東西老技巧 ,在今日強調物件導向的環境是不適合的。 公司裏面很多Delphi的老系統與維護仍佔公司近半收益,為了維護方便,裏面很多核心 的部份都被用新技巧新架構重寫了。 單就本個貼子言,這篇講到Delphi的批評,純是個人看法與觀感,大家看看就好,小弟 無意就此與大家筆戰。就此篇之來文,小弟一律不回覆。
------
Kevin
編輯記錄
kevin2004 重新編輯於 2009-01-24 10:17:43, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |