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

如何將二維陣列傳到另一個Form上

答題得分者是:supman
vickyju
一般會員


發表:2
回覆:4
積分:1
註冊:2005-03-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-11 13:11:07 IP:210.202.xxx.xxx 未訂閱
Form1 的程式碼 type Tab = array[1..5,1..10] of integer; procedure TForm1.Button2Click(Sender: TObject); var ArrayB:Tab; i, j, x:integer; begin for i := 1 to 5 do begin for j := 1 to 10 do begin ArrayB[i,j] := i * j end; end; x := Unit2.DF_Child(ArrayB); end; Form2的程式碼 type Tab = array[1..5,1..10] of integer; function DF_Child(ArrayB:Tab):integer; var i, j:integer; V:string; begin for i := low(ArrayB) to High(ArrayB) do begin V:= ''; for j := Low(ArrayB[i, 1]) to High(ArrayB[i,1]) do begin V := IntToStr(ArrayB[i,j]) ','; end; Form2.ListBox1.Items.Add(V); end; result := 2; end; 以上程式 會有 Incompatible types: 'Unit2.Tab' and 'Unit1.Tab' 的錯誤訊息 該如何解決呢?? 或是有其他方法可以將Form1的陣列內容傳到Form2呢??
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-11 13:41:59 IP:61.70.xxx.xxx 未訂閱
因為您在兩個Unit中都定義了Tab這個型態,對編譯器來講是兩個不同Type,您要將函數與定義放在同一Unit,再讓Unit1去Use他,這樣就可以了
Unit1:
uses Unit2;    {$R *.dfm}    procedure TForm1.Button1Click(Sender: TObject);
var ArrayB:Tab;
i, j, x:integer;
begin
for i := 1 to 5 do
 begin
  for j := 1 to 10 do
   ArrayB[i,j] := i * j
 end;
x:=DF_Child(ArrayB);
end;    Unit2:
unit Unit2;    interface    type Tab = array[1..5,1..10] of integer;
function DF_Child(ArrayB:Tab):integer;    implementation    function DF_Child(ArrayB:Tab):integer;
var i, j:integer;
V:string;
begin
 for i := low(ArrayB) to High(ArrayB) do
 begin
  V:= '';
  for j := Low(ArrayB[i, 1]) to High(ArrayB[i,1]) do
   V := IntToStr(ArrayB[i,j])   ',';
  Form2.ListBox1.Items.Add(V);
  result := 2;
 end;
end;
vickyju
一般會員


發表:2
回覆:4
積分:1
註冊:2005-03-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-11 16:00:01 IP:210.202.xxx.xxx 未訂閱
那如果 Unit2 是一個DLL的Unit 又該如何寫呢?? 我的原意是:從 Form1 傳陣列值到一個DLL的Unit 中做處理
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-11 16:16:23 IP:61.70.xxx.xxx 未訂閱
在delphi介面中[File]->[New]->[Other]->[New頁次]->[DLL Wizard] 建立一個DLL,把Unit程式碼填過去 參考以下 http://delphi.ktop.com.tw/topic.php?topic_id=68211 或搜尋DLL會找到很多資料.
vickyju
一般會員


發表:2
回覆:4
積分:1
註冊:2005-03-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-11 16:55:35 IP:210.202.xxx.xxx 未訂閱
Hi supman 非常感謝您!!我的問題解決了!!
系統時間:2024-11-24 18:39:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!