我想用r的元素填充最後三個Edit。不知何故,我的價值沒有改變。請看一看!Delphi中的數組實現xe6
procedure TForm1.Button1Click(Sender: TObject);
var
r: Array of Real;
cod,h,N,code,i: Integer;
value: Real;
begin
Val(Edit1.Text, cod, code);
Val(Edit2.Text, h, code);
Val(Edit3.Text, N, code);
Edit1.Text := Edit1.Text;
Edit2.Text := Edit2.Text;
Edit3.Text := Edit3.Text;
setlength(r, N);
i:= 0;
while i<= N do
begin
r[i] := cod/2 + h*i;
i := i + 1;
end;
Edit4.Text := formatfloat('#.0', r[0]);
Edit5.Text := formatfloat('#.0', r[1]);
Edit6.Text := formatfloat('#.0', r[2]);
end;
end.
唯一的原因,我可以看到'i'不改變將會是一個錯誤閱讀'N'。我可能會使用StrToInt來覆蓋val,儘管 –
而不是供應代碼,它涉及到我們只能猜測其內容的GUI控件,請提供帶有硬編碼輸入的SSCCE。或者,我向你推薦優秀的調試器。 –
@JamesBarrass:在這種情況下,如果結果不被忽略,TryStrToint可能會更好。在這裏,'code'從不檢查錯誤,它簡單地被忽略。我也不明白「Edit.Text:= Edit1.Text」應該做什麼,或者爲什麼使用while循環而不是for循環。 –