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

二維陣列同form的傳值…

尚未結案
justlovemi
一般會員


發表:3
回覆:6
積分:1
註冊:2005-04-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-12 15:49:25 IP:192.192.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject); begin if d = c then form1.Caption:=inttostr(123); end; procedure TForm1.FormCreate(Sender: TObject); begin for i:=0 to 3 do begin for j:=0 to 9 do begin b:=random(9); b:=b 1; c:=random(9); c:=c 1; a[i][j]:=Tedit.create(self); a[i][j].parent:=form1; a[0][j].text:=inttostr(b); a[1][j].text:=inttostr(c); ............ d:=b*c; a[3][j].Text:=inttostr(d); end; end; 是在同一個form的…只是在不同的procedure內… 它說for loop control variable must be simple loca variable 是???要我把它放在local??… > < "....我看不懂…> < "
supman
尊榮會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-12 16:26:32 IP:61.70.xxx.xxx 未訂閱
您好: 說實在,我也看不董您的問題捏,可以貼出完整程式碼嗎? 您所提到錯誤訊息因該是這樣照成的 for i= 1 to 6 do  =>for i:= 1 to 6 do 至於您要讓兩個程序都能用那個陣列
type
  TForm1 = class(TForm)
  private
   放這就行了
  public
  end;
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-12 21:39:03 IP:202.39.xxx.xxx 未訂閱
應該是 i,j 這兩個變數的宣告地方不適當 改在如下紅色處:
procedure TForm1.FormCreate(Sender: TObject);
var
  i,j: integer;
begin
 for i:=0 to 3 do
 begin
   for j:=0 to 9 do
   begin
   // ...
end;
-- 分擔可以輕省, 分享帶來喜樂! 發表人 - hagar 於 2005/04/12 21:40:23
justlovemi
一般會員


發表:3
回覆:6
積分:1
註冊:2005-04-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-12 23:09:32 IP:192.192.xxx.xxx 未訂閱
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button2Click(Sender: TObject);//<===顯示這行錯誤 procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Edit1: Tedit; Label1: Tlabel; Label2: Tlabel; button1: TForm1; implementation var a:array[0..3,0..9] of Tedit; i,j,b,c,d,e:integer; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin e:=strtoint(a[2][j].text); if d = e then form1.Caption:=inttostr(123); end; procedure TForm1.FormCreate(Sender: TObject); begin for i:=0 to 3 do begin for j:=0 to 9 do begin b:=random(9); b:=b 1; c:=random(9); c:=c 1; a[i][j]:=Tedit.create(self); a[i][j].parent:=form1; a[0][j].text:=inttostr(b); a[1][j].text:=inttostr(c); a[i][j].left:=50 70*i; a[i][j].top:=20 35*j; a[i][j].height:=10; a[i][j].width:=30; a[i][j].show; d:=b*c; a[3][j].Text:=inttostr(d); end;end;end;end. procedure TForm1.Button2Click(Sender: TObject); begin close(); end; 全部的程式... 我把i和j宣告在全欲變數... 我再BUTOON1想寫一個判斷當 d=e時做form1.Caption:=inttostr(123); 他顯示的錯誤 for loop control variable must be simple loca variable
supman
尊榮會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-13 11:03:23 IP:61.70.xxx.xxx 未訂閱
您好: for loop control variable must be simple loca variable 這是編譯器在警告你,你在For loop的迴圈值是全域變數,他可能會導致你的程式產生錯誤,因為別的程序也可能同時在操作那個變數. 另外 e:=strtoint(a[2][j].text); if d = e then form1.Caption:=inttostr(123); 您上面的j永遠都會是9阿,因為在Create那邊迴圈就已經把跑到終值去了. d的值也是永遠都是第9個random的b*c的值. 您所講的當d=e時from.caption=123,您要講一下是什麼情況底下才要去觸發d=e ,因為你的d值有9個,還是您只要最後一次有相等就讓caption=123?
supman
尊榮會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-13 11:07:07 IP:61.70.xxx.xxx 未訂閱
請管理員刪除,剛以為沒傳出去,重複貼到了. 發表人 - supman 於 2005/04/13 11:22:33
justlovemi
一般會員


發表:3
回覆:6
積分:1
註冊:2005-04-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-25 22:08:39 IP:192.192.xxx.xxx 未訂閱
我朋友他的程式.... 她好像a[j][i] 就可以了~~~ @ @ "...不知道是不是你說的... > <"
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-04-26 19:46:12 IP:210.68.xxx.xxx 未訂閱
justlovemi您好: 提醒您PO程式碼的方式請參考版規說明 < href="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=58991">http://delphi.ktop.com.tw/topic.php?TOPIC_ID=58991
justlovemi
一般會員


發表:3
回覆:6
積分:1
註冊:2005-04-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-04-26 22:33:41 IP:192.192.xxx.xxx 未訂閱
@ @ ...嗯嗯對不起> < " 他卡在迴圈..我不知道哪裡錯> < "... 對不起> < "
系統時間:2024-05-17 10:06:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!