請問Procedure / Function如何傳遞陣列 |
答題得分者是:hagar
|
kkccgg
初階會員 發表:50 回覆:54 積分:30 註冊:2002-07-28 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
function 的回傳陣列方式參考:
http://forum.vclxx.org/topic.php?TOPIC_ID=3236&FORUM_ID=8&CAT_ID=2&Topic_Title=function+%A5i%A5H%A6%5E%B6%C7%B0%7D%A6C%B6%DC&Forum_Title=Pascal
procedure 傳陣列的方式如下:
procedure SomeProc(const MyArray: array of integer); var i: Integer; begin for i := Low(MyArray) to High(MyArray) do end; procedure SomeProc(var MyArray: array of integer); var i: Integer; begin for i := Low(MyArray) to High(MyArray) do end;發表人 - hagar 於 2002/10/22 22:42:05 |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
a6475
高階會員 發表:67 回覆:230 積分:154 註冊:2002-09-15 發送簡訊給我 |
如果果陳列有指定小大的話,可以先用type指定
type Tary : array [0..10] of integer;
procedure SomeProc(theAry : Tary); ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎ 藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475 發表人 - a6475 於 2004/06/30 09:05:03
------
月夜 光明 藍更愁 |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
unit ....
interface ...
..
uses...
......
type
Tsysset = class(TForm)
procedure......
procedure......
protected
public
EngAry:Array[0..1,1..30] of string;
procedure CharToNum(LenD:Integer;DP:integer;EachDiSo:EngAry);
end; var
............
implementation {$R *.dfm}
procedure ............... 依然出現錯誤
[Error] frm_SystemSet.pas(1070): Undeclared identifier: 'EngAry'
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
unit .... interface ... .. uses... ...... type EngAry: Array[0..1,1..30] of string; type Tsysset = class(TForm) procedure...... procedure...... protected public procedure CharToNum(LenD: Integer; DP: integer; EachDiSo: EngAry); end; var ............ implementation {$R *.dfm} procedure ...............-- Everything I say is a lie. |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
我已經改=了 謝啦
延續剛才的問題
我將EachVaDiSo陣列 傳給下列的Procedure做判斷,
也就是 CharToNum(20,1,EachVaDiSo); 那麼EachVaDiso本身的值 如何跟著做改變呢?
procedure TSystemSet.CharToNum(LenD:Integer;DP:integer;EachDiSo:EngAry); var m:integer; begin m:=1; while m<=LenD do begin if EachDiSo[DP,m]='A' then EachDiSo[DP,m]:='10'; if EachDiSo[DP,m]='B' then EachDiSo[DP,m]:='11'; if EachDiSo[DP,m]='C' then EachDiSo[DP,m]:='12'; if EachDiSo[DP,m]='D' then EachDiSo[DP,m]:='13'; if EachDiSo[DP,m]='E' then EachDiSo[DP,m]:='14'; if EachDiSo[DP,m]='F' then EachDiSo[DP,m]:='15'; if EachDiSo[DP,m]='G' then EachDiSo[DP,m]:='16'; if EachDiSo[DP,m]='H' then EachDiSo[DP,m]:='17'; if EachDiSo[DP,m]='I' then EachDiSo[DP,m]:='18'; if EachDiSo[DP,m]='J' then EachDiSo[DP,m]:='19'; if EachDiSo[DP,m]='K' then EachDiSo[DP,m]:='20'; if EachDiSo[DP,m]='L' then EachDiSo[DP,m]:='21'; if EachDiSo[DP,m]='M' then EachDiSo[DP,m]:='22'; if EachDiSo[DP,m]='N' then EachDiSo[DP,m]:='23'; if EachDiSo[DP,m]='O' then EachDiSo[DP,m]:='24'; if EachDiSo[DP,m]='P' then EachDiSo[DP,m]:='25'; if EachDiSo[DP,m]='Q' then EachDiSo[DP,m]:='26'; if EachDiSo[DP,m]='R' then EachDiSo[DP,m]:='27'; if EachDiSo[DP,m]='S' then EachDiSo[DP,m]:='28'; if EachDiSo[DP,m]='T' then EachDiSo[DP,m]:='29'; if EachDiSo[DP,m]='U' then EachDiSo[DP,m]:='30'; m:=m 1; end; end; |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |