我的程式能跑,但最後卻當掉 |
答題得分者是:cobraliu
|
lappears
一般會員 發表:2 回覆:2 積分:0 註冊:2008-01-19 發送簡訊給我 |
我寫了一個小實驗
能跑 但最後會當掉 應該是我最後面那個 Thank 的Form寫錯了 我在Ques這個Form裡面 有兩個圖案 要求受試者選擇對的圖案 然後在Thank這個Form裡顯示 受試者是否答對了 我不太確定要怎麼呼叫 我把檔案上傳 麻煩大大幫我看看
附加檔案:4791faeb9ca84_1.rar
|
lappears
一般會員 發表:2 回覆:2 積分:0 註冊:2008-01-19 發送簡訊給我 |
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
我看不懂你寫的程式, 但看一下就有很多問題了, 你可能要買本書, 靜下心來研究研究, 再來問好了.
[code delphi] public { Public declarations } OnChoose : TEventChoice; {這是你原先宣告的型別} end; protected { Private declarations } procedure ProcessChoose(ChooseLeft : Boolean); {注意: 這個程序宣告沒有傳回值} procedure TThank.ProcessChoose (ChooseLeft : Boolean); begin Ques.OnChoose := ProcessChoose; {請問您: 沒有傳回值的程序如何傳給一個TEventChoice的型別, 真奇怪了} Thank.Show; if ChooseLeft then LabeledEdit1.Text := '恭喜您答對了' else LabeledEdit1.Text := '抱歉答錯喔,答案是14'; end; [/code]
------
努力會更接近成功 |
cobraliu
中階會員 發表:15 回覆:75 積分:83 註冊:2007-11-22 發送簡訊給我 |
[code delphi] unit U7; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, ExtCtrls, jpeg; type TEventChoice = procedure (ChooseLeft : Boolean) of object;//宣告 TQues = class(TForm) Label1: TLabel; Label2: TLabel; Image1: TImage; Image2: TImage; procedure Image1Click(Sender: TObject); procedure Image2Click(Sender: TObject); private { Private declarations } public { Public declarations } OnChoose : TEventChoice;//宣告 end; var Ques: TQues; implementation uses M, Thx; {$R *.dfm} procedure TQues.Image1Click(Sender: TObject); begin OnChoose(true);//直接傳入 Close; end; procedure TQues.Image2Click(Sender: TObject); begin OnChoose(false);//直接傳入 Close; end; end. [/code] 網友這一個問題自已有看過,但其實我看太懂 自已學藝不精... 版大似乎是這類型的寫法,看了很多Uint都有這類似的 其實想問的是...我看了幾次版大的寫法, 不懂的是...其函數如: OnChoose : TEventChoice;//宣告 都是繼承來用,沒有看到主體,這樣是有做用的嗎... 還是多餘的..??? 沒有多開一個主題請見諒,想說與版大的應有關..自已也可以了解一下..@@
------
初學、初學、學了很久...還是在初學階段..Orz |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
-->> Ques.OnChoose := ProcessChoose; {請問您: 沒有傳回值的程序如何傳給一個TEventChoice的型別, 真奇怪了} <<-- 我想要是在做「指定事件」那就合理了,畢竟「OnChoose」名稱是採用Delphi 慣例,除非設計者不這麼想,不然 OnChoose 應該是 event 然後在往下看 -->>TEventChoice = procedure (ChooseLeft : Boolean) of object;//宣告 <<-- 可以看見,其真的是一個 event 所以 pceyes,辛苦回答,讓你眼睛用太多,有點累囉,休息一下,再繼續,才不會看錯喔! 至於lappears,pceyes 的建議不錯,用心看本書吧!會有收穫的 ===================引 用 pceyes 文 章=================== 我看不懂你寫的程式, 但看一下就有很多問題了, 你可能要買本書, 靜下心來研究研究, 再來問好了. [code delphi] public { Public declarations } OnChoose : TEventChoice; {這是你原先宣告的型別} end; protected { Private declarations } procedure ProcessChoose(ChooseLeft : Boolean); {注意: 這個程序宣告沒有傳回值} procedure TThank.ProcessChoose (ChooseLeft : Boolean); begin Ques.OnChoose := ProcessChoose; {請問您: 沒有傳回值的程序如何傳給一個TEventChoice的型別, 真奇怪了} Thank.Show; if ChooseLeft then LabeledEdit1.Text := '恭喜您答對了' else LabeledEdit1.Text := '抱歉答錯喔,答案是14'; end; [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |