關於在form1 button1按下,show出form2並賦予form2 form1中的值該怎做? |
答題得分者是:Justmade
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
小弟在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 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
引言: 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 發送簡訊給我 |
因為 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 發送簡訊給我 |
引言: 因為 FormCreate(Sender) 裡的 Sender 跟本不是 Button1 而是 Form2 你的問題其實很簡單可以做到 :「堅持」從洗馬桶做起 Aricprocedure 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; |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |