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

關於在form1 button1按下,show出form2並賦予form2 form1中的值該怎做?

答題得分者是:Justmade
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-16 15:38:23 IP:210.201.xxx.xxx 未訂閱
小弟在form1 中作一個label1.caption:='aaa'; 並做一button1,在button做一onclick程序, 再做一form2,在form2中做一label2, 按一下button後會show出form2並賦予form2中 form2.label2.caption:=form1.label1.caption; 以下是 小弟buttonclick錯誤程序語法 procedure form1.button1click(sender:tobject) begin with form2.create(seft) do try if showmodal=mrok then begin form2.label2.caption:=form1.label1.caption; end; finally free end; end; 請教 1依此模式應如何作? 2又如在create form2時form2 中的oncreate 程序用sender語法要如何作? 小弟不清楚sender如何運用以下是個人想像 procedure tform2.formcreate(sender:tobject) begin if sender=tform1.button1click then begin form2.label2.caption:=form1.label1.caption; end; 還有一種想法 procedure tform2.formcreate(sender:tobject) begin WITH sender=tform1.button1click DO begin form2.label2.caption:=form1.label1.caption; end; 不知要怎麼改?還請多多指教// 「堅持」從洗馬桶做起 Aric
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-16 15:54:11 IP:61.218.xxx.xxx 未訂閱
procedure TForm1.button1click(sender:tobject) begin   with TForm2.create(self) do   brgin    showmodal;    Free;   end; end;    procedure TForm2.formcreate(sender:tobject) begin  label2.caption:=TForm1(Owner).label1.caption; end;        僅供參考,歡迎繼續發言
------
︿︿
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-16 16:40:56 IP:210.201.xxx.xxx 未訂閱
引言: procedure TForm1.button1click(sender:tobject) begin with TForm2.create(self) do brgin showmodal; Free; end; end; procedure TForm2.formcreate(sender:tobject) begin label2.caption:=TForm1(Owner).label1.caption; end; 以上程式小弟試過可以正常執行 謝謝CMF前輩幫忙 可再請教SENDER要如何使用SENDER 經以上CMF前輩程式小弟改了SENDER 的程式如下可執行但SHOW 不出來結果不知有解決的方法嗎?(因小弟得用到 多個BUTTON共用FORM2時顯示FORM1的結果,目前只想到用SENDER的方法,但 以下程式不能顯出結果,還請幫幫忙) procedure tform2.formcreate(sender:tobject) begin if sender=tform1(OWNER).button1 then begin form2.label2.caption:=form1(OWNER).label1.caption; end;
「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/04/16 16:57:41
Justmade
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-16 17:00:09 IP:218.16.xxx.xxx 未訂閱
因為 FormCreate(Sender) 裡的 Sender 跟本不是 Button1 而是 Form2    你的問題其實很簡單可以做到 :
procedure form1.button1click(sender:tobject)
begin
  with Tform2.create(seft) do
  try
    label2.caption:=form1.label1.caption;
    showmodal
  finally
    free
  end;
end;
若你一定要在 Form2 裡做而你又想知道是按那個 Button 來Create 這個 Form 的,你要用一個 public 變數(放在Form1 或 Form2 均可,假設在Form1 叫 ButtonClicked : String)
procedure form1.button1click(sender:tobject) //此Sender 是 Button1
begin
  with Tform2.create(seft) do
  try
    ButtonClicked := TButton(Sender).Name;
    showmodal;
  finally
    free
  end;
end;    procedure form1.FormCreate(Sender:TObject) //此Sender 是 Form2
begin
  if Tform1(OWNER).buttonclicked = 'button1' then
    label2.caption:=Tform1(OWNER).label1.caption;
end;
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-16 17:18:01 IP:210.201.xxx.xxx 未訂閱
引言: 因為 FormCreate(Sender) 裡的 Sender 跟本不是 Button1 而是 Form2 你的問題其實很簡單可以做到 :
procedure form1.button1click(sender:tobject)
begin
  with Tform2.create(seft) do
  try
    label2.caption:=form1.label1.caption;
    showmodal
  finally
    free
  end;
end;
再請教
procedure form1.button1click(sender:tobject)
begin
with form2.create(seft) do
try
if showmodal=mrok then//這敘述是不是沒有執行到呢?
begin
form2.label2.caption:=form1.label1.caption;
end;
finally
free
end;
end;    
「堅持」從洗馬桶做起 Aric
Justmade
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-16 17:31:01 IP:218.16.xxx.xxx 未訂閱
當 ModelResult = mrOK 時,Form2 已經關掉了,你還給他label2.Caption 的值做甚麼 ?? 你若想在 Form2 按一個 Button 時才給label2.Caption值,可以在 Form2 放一個 Button1, 讓 modelresult = 預設的 mrNone (這樣才不會關掉 Form2),然後 OnClick : label2.caption:=Tform1(OWNER).label1.caption;
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-16 17:47:40 IP:210.201.xxx.xxx 未訂閱
引言: 兩位前輩熱情回應讓我受益菲淺真是大大的感謝 只有選詳細的方法讓我這個笨蛋結束此案謝啦 < face="Verdana, Arial, Helvetica"> 「堅持」從洗馬桶做起 Aric
系統時間:2024-06-28 1:58:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!