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

兩個FORM之間要如何呼叫,及傳值...

答題得分者是:Justmade
laku0121
一般會員


發表:39
回覆:49
積分:17
註冊:2002-10-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-16 00:06:12 IP:202.129.xxx.xxx 未訂閱
例如說 : 我有一個 Form1 及 Form2 兩個 FORM 中各加入一個Button及Edit,此Button主要的功能是在將自己的FORM Hide,另一個FORM Show,而Edit是在記錄對方(FORM)按下的按鈕的動作名稱(如 Hide Form1等名稱)。試問這要如何編寫??
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-16 03:08:10 IP:61.56.xxx.xxx 未訂閱
你好: Delphi 不允許多重參照,所以要達成你的需求要使用其他方式。在此藉機 示範一個利用 OO 的繼承架構達成你說的需求。這個範例也許不是解決你的問題 最好的方法,但對於 Delphi 在 OO 方面的應用應該有幫助。也請前輩們不吝指 導。    http://sourceprovide.deepen.com.tw/K_Top/OOForm.exe PS:半夜三點好累,無法詳加注釋。見諒 < src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif">
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-16 10:09:57 IP:218.16.xxx.xxx 未訂閱
試試這樣 : Unit 1  :
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;    type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    uses Unit2;    {$R *.dfm}    procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Show;
  Form2.Edit1.Text := 'Show Form 2';
  Hide;
end;    end.
Unit 2 :
unit Unit2;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;    type
  TForm2 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form2: TForm2;    implementation    uses Unit1;    {$R *.dfm}    procedure TForm2.Button1Click(Sender: TObject);
begin
  Form1.Show;
  Form1.Edit1.Text := 'Show Form 1';
  Hide;
end;    end.
補充一下:若兩個 unit 在 interface 的 uses 互相 uses 對方是不成的,就是 ha0009 版主所說的 循環參照。 不過若一個 uses 在 interface 另一個 uses 在 implementation 或 兩個都 uses 在 implemention 是沒問題的。 發表人 - Justmade 於 2003/07/16 10:25:21
laku0121
一般會員


發表:39
回覆:49
積分:17
註冊:2002-10-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-16 12:41:00 IP:211.76.xxx.xxx 未訂閱
謝謝兩位的回覆...    終於知道只要在  implementation 段加入 uses 另一個Unit就可直接的應用了    可以直接的在Fomr2使用 如 Edit1.Text := Form1.Edit1.Text;即可傳可將Form1的東東傳給 Form2 
系統時間:2024-05-09 7:05:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!