grid index out of range是什么問題,怎么解決?


gird表格中的內容超出了最大的值范圍。
解釋:表格中的表格設置個格數小於了實際輸入的值的個數,此時就會報這個錯誤,解決辦法就是查看下傳遞的值的長度,然后重新增加grd的個格數。
備注:這個報錯實際上並不一定是grid報出來的可能是for循環獲取值的時候,發現定義的長度為10個,結果循環的時候就有8個值,那么到第九個的時候就會跑出來數組下標越界。

 

procedure Tinput.FormCreate(Sender: TObject); var i,j,num:integer; begin //-------------設置stringgrid行,列名稱 stringgrid1.Cols[0].Add('序號'); stringgrid1.ColWidths[0]:=32; stringgrid1.Cols[1].Add('貨號(雙擊)'); stringgrid1.ColWidths[1]:=80; stringgrid1.Cols[2].Add('品名'); stringgrid1.ColWidths[2]:=128; stringgrid1.Cols[3].Add('單位'); stringgrid1.ColWidths[3]:=32; stringgrid1.Cols[4].Add('數量'); stringgrid1.ColWidths[4]:=64; stringgrid1.Cols[5].Add('倉庫'); stringgrid1.ColWidths[5]:=48; stringgrid1.Cols[6].Add('單價'); stringgrid1.ColWidths[6]:=64; stringgrid1.Cols[7].Add('金額'); stringgrid1.ColWidths[7]:=64; stringgrid1.Cols[8].Add('稅率'); stringgrid1.ColWidths[8]:=64; stringgrid1.Cols[9].Add('稅額'); stringgrid1.ColWidths[9]:=64; stringgrid1.Cols[10].Add('不含稅額'); stringgrid1.ColWidths[10]:=64; for i:=1 to 20 do begin stringgrid1.Rows[i].Add(inttostr(i)); stringgrid1.RowHeights[i]:=20; end; //-------------------------設置業務員數據詞典 adoquery1.Close; adoquery1.SQL.Add('select 姓名 from 用戶清單 where 姓名!=''sys'''); adoquery1.Open; combobox1.Clear; while not adoquery1.Eof do begin combobox1.Items.Add(adoquery1.fieldbyname('姓名').AsString); adoquery1.Next; end; end;

 

表格的行與列數要大於 循還之數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM