二維陣列同form的傳值… |
尚未結案
|
justlovemi
一般會員 發表:3 回覆:6 積分:1 註冊:2005-04-12 發送簡訊給我 |
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 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
justlovemi
一般會員 發表:3 回覆:6 積分:1 註冊:2005-04-12 發送簡訊給我 |
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 發送簡訊給我 |
您好:
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 發送簡訊給我 |
|
justlovemi
一般會員 發表:3 回覆:6 積分:1 註冊:2005-04-12 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
justlovemi
一般會員 發表:3 回覆:6 積分:1 註冊:2005-04-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |