我有10個TEdits和10個圖像,我試圖使用此:Delphi的初學者 - 使用循環與TEDIT
procedure TForm1.Button1Click(Sender: TObject; edit: TEdit);
var i:integer;
begin
for i:= 1 to 10 do
begin
if edit[i].text:='1' then picture[i].Show else picture[i].Hide;
end;
end;
但是Delphi的返回此錯誤:[錯誤] Unit1.pas(84):類不有一個默認屬性
我也試過這樣:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:= 1 to 10 do
begin
if edit[i].text:='1' then picture[i].Show else picture[i].Hide;
end;
end;
但同樣,德爾福會返回錯誤:
[Error] Unit1.pas(84): Undeclared identifier: 'edit'.
你能幫我用這段代碼嗎?
很多基本的錯誤在這裏。 ':='是賦值運算符,'='是比較。一定不要混淆這些。看來你還沒有聲明任何名爲'edit'或'picture'的數組。如果要訪問數組中的控件,則需要聲明這些數組,然後將引用放置在其中的控件中。還要注意,你不能改變'TNotifyEvent'的方法簽名 - 它只能有一個參數('Sender:TObject')。 –
另請參見:[使用字符串+整數和調用函數形成變量名稱](http://stackoverflow.com/q/16710189/33732)[如何引用一個名稱在運行時確定的控件?](http ://stackoverflow.com/q/13649250/33732)[如何創建一個控件數組?](http://stackoverflow.com/q/1218041/33732) –