請問如何更改目前Form2的同時,背景的Form1資料也跟著修改show出 |
答題得分者是:syntax
|
17kobe
初階會員 發表:86 回覆:73 積分:31 註冊:2007-07-30 發送簡訊給我 |
我有兩個form,分別form1及form2
form1有個按鈕產生fomr2 <textarea class="delphi" rows="10" cols="60" name="code">procedure TForm1.Button1Click(Sender: TObject); var a: TForm2; begin a:= TForm2.Create(Form1); try a.ShowModal; finally showdata(); a.Free; end; end;</textarea> 然後在form2操作變更時(一個按鈕變更某一變數值),此時form1的顯示資訊也會跟著修改,此時form1還是在背景,而form2還是在最上層。請問要如何做到。我在form2的按按鈕傳回modalresult=mrok;但是這時form2就會被關掉。還是我要用show,但是我不知道如何只是在背景form1顯示就好。 |
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
17kobe
初階會員 發表:86 回覆:73 積分:31 註冊:2007-07-30 發送簡訊給我 |
嗯,不過不設後,我要如何互動設計
<textarea class="delphi" rows="10" cols="60" name="code">procedure TForm1.Button2Click(Sender: TObject); var a: TForm3; begin a:= TForm3.Create(Form1); try a.Showmodal; if control_change=2 then begin showdata(); control_change:=1; end; //a.ShowData; //ShowData(); finally showdata(); a.Free; end; end; </textarea> 我用個全域變數,但好像不行,在這裡沒有動作,沒有執行序在跑的樣子,不太知道要如何來互動 |
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
17kobe
初階會員 發表:86 回覆:73 積分:31 註冊:2007-07-30 發送簡訊給我 |
Form1 <textarea class="delphi" rows="10" cols="60" name="code">public
procedure ShowData1(s:string);
procedure TForm1.ShowData1(s:string);
begin
label1.caption:=s;
end;
</textarea> Form2 <textarea class="delphi" rows="10" cols="60" name="code">procedure TForm3.Button3Click(Sender: TObject);
begin00
form1.showdata1('zzzzzz');
end;
</textarea> 錯誤訊息 access violation at adress 00692A13 in module 'project1.exe' 不行,也還是不太知道如何來改。
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
17kobe
初階會員 發表:86 回覆:73 積分:31 註冊:2007-07-30 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
建議你修改你的設計邏輯
除非有必要,不然兩 From 有相依性,卻又可以各自運作,甚至關閉,處理起來,會複雜許多,徒增工作量 建議改成 3 個 Unit,一個放 Form1,一個放 Form2,另一個放所有必須共用的東西,然後由 Form 1 與 2 來呼叫 除非你有特殊的需求,非用循環參照不可 ===================引 用 17kobe 文 章=================== 我有兩個form,分別form1及form2 form1有個按鈕產生fomr2 <textarea name="code" cols="60" rows="10" class="delphi">procedure TForm1.Button1Click(Sender: TObject); var a: TForm2; begin a:= TForm2.Create(Form1); try a.ShowModal; finally showdata(); a.Free; end; end;</textarea> 然後在form2操作變更時(一個按鈕變更某一變數值),此時form1的顯示資訊也會跟著修改,此時form1還是在背景,而form2還是在最上層。請問要如何做到。我在form2的按按鈕傳回modalresult=mrok;但是這時form2就會被關掉。還是我要用show,但是我不知道如何只是在背景form1顯示就好。 |
17kobe
初階會員 發表:86 回覆:73 積分:31 註冊:2007-07-30 發送簡訊給我 |
剛剛寫範例程式 結果可以
我是在form1全域變數寫 var tt:string; //按鈕動作 procedure TForm1.Button1Click(Sender: TObject); var a: TForm2; begin a:= TForm2.Create(Form1); try a.ShowModal; finally a.Free; end; end; //form2 procedure TForm2.Button1Click(Sender: TObject); begin tt:='修改資料庫資料'; form1.show_data; end; 這樣就行了 但是我實際tt是抓資料庫資料,當form2按鈕按下去 去執行form1下列指令就錯了 if not SQLOpenOK(ADOQuery1,'SELECT groupid,size FROM sysfiles') then ShowMessage('Query ERROR!!'); 有點懷疑是不能去使用ADOQuery1,我把ADOQuery加到全域變數這樣也不行。 ps : SQLOpenOK已經是全域變數。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |