線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1505
推到 Plurk!
推到 Facebook!

這個函數的路徑該怎麽寫呢?

答題得分者是:老大仔
mp394681143
一般會員


發表:64
回覆:40
積分:20
註冊:2009-10-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-02-05 01:12:11 IP:61.136.xxx.xxx 訂閱
我想把函數寫在按鈕事件的下面,那函數前面該寫哪個路徑,是按鈕嗎?Tbutton.function hs_99(x,y:integer):integer;好像是錯的,該怎麽寫呢? 

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z:integer;
begin
x:=5;
y:=10;
z:=hs_99(x,y);
Label1.Caption:=inttostr(z);
end;
function hs_99(x,y:integer):integer;
begin
hs_99:=x y;
end;

[/code]
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-02-05 08:43:41 IP:59.120.xxx.xxx 未訂閱

Delphi在compile的時候
是從上到下的往下編譯的
而你的hs_99放在Button1Click下方
所以當它在Compile時,因為沒有先讀到hs_99
就會有問題了
所以只要把hs_99放在Button1Click上方就可以了

[code delphi]
function hs_99(x,y:integer):integer;
begin
hs_99:=x y;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z:integer;
begin
x:=5;
y:=10;
z:=hs_99(x,y);
Label1.Caption:=inttostr(z);
end;


[/code]
編輯記錄
老大仔 重新編輯於 2010-02-05 08:44:12, 註解 無‧
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-02-05 21:24:10 IP:59.124.xxx.xxx 訂閱
這樣也可以,但我個人建議除非hs_99是在這個Unit裡面常引用到的,且此Unit的程式碼有一定的量才用這個forward方式。
躲在implementation裡面的forward也就表示其可視範圍只在這個Unit。

[code delphi]
implementation

function hs_99(x,y:integer):integer;forward;

procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z:integer;
begin
x:=5;
y:=10;
z:=hs_99(x,y);
Label1.Caption:=inttostr(z);
end;

function hs_99(x,y:integer):integer;
begin
hs_99:=x y;
end;
[/code]

------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
系統時間:2017-12-15 10:34:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!