Wolfgang Chien's Homepage | Delphi學習筆記 - 問答篇 |
Delphi 一個Form 中有一 Edit and Button 按此 Button 會 show 出新 From 而此新 form 中的 Edit 內容要與原 Form 相同, 我試不出來說
兩個 Form 都 uses 對方
UNIT1 uses unit2; procedure button1_click() begin form2.show; end; UNIT2 uses unit1; procedure form2_onCreate() begin edit1.text:=Form1.edit1.text; end;
執行結果沒效 ??
Form 產生後、使用者使用前先設定 form上元件的值是寫在 Form 的 OnCreate Event吧? 又如果原 Form 是一個 MDIChild 的話, 是否會有差別?
兩個 unit 均在 interface 互相 uses 對方是不可以的,一定要互相參考的話, 您可以在 unitA 的 interfaceuses unitB, 然後在 unitB 的 implementation 中 uses unitA
你寫的程式還是曾經執行過, 只是早在程式啟動的時候, Delphi就已經自動為您 Create 這個 Form 了, 關於這點你可以點一下主選單 View | Project Source, 看一下 project1.dpr 的內容, 在 Application.Run 前, 是不是已經 Create 過 Form2 了呢?
建議您可以先從主選單 Option | Project, 將 Form2 從Auto-create forms 移到 Available forms, 然後在 Button1的 OnClick 事件中加入以下程式段:
Application.CreateForm(TForm2, Form2); Form2.Show;
相信你在 Form2 Create 事件中寫的程式碼就會如你的預期了。
或者, 您可以用下列的方法試試看:
unit Unit1; interface uses ...., Unit2; . . implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin Form2.Edit1.Text := Form1.Edit1.Text; Form2.Show; end; end.
希望這些能幫得上忙!
首頁 | 學習筆記 | 主題公園 | 軟體下載 | 關於本站 | 討論信群 | 相約下次 |