当我点击TListBox中的任何项目时,索引超出范围(-1)

时间:2015-12-29 01:21:57

标签: database sqlite delphi delphi-xe8

名为TListBox的{​​{1}}填充了数据库中的记录。运行应用程序时,数据显示正常。当我点击列表中的任何项目时,显示错误:

  

指数超出范围(-1)

尽管列表不是空的。

以下是填充lboMtrlList

的代码
lboMtrlList

我希望能够双击procedure TfrmMakeQuote.FormCreate(Sender: TObject); begin con := TFDConnection.Create(nil); query := TFDQuery.Create(con); con.LoginPrompt := false; con.Open('DriverID=SQLite;Database=C:\Users\katiee\Documents\Embarcadero\Studio\Projects\ProgramDatabase;'); query.Connection := con; performQuery; query.SQL.Text := 'SELECT [Material Description] FROM MtrlDatabase ORDER BY MtrlID'; try query.Open; lboMtrlList.Items.Clear; while not query.EOF do begin lboMtrlList.Items.Add(query.Fields[0].AsString); query.Next; end; finally query.Close; end; //ledtDesc.Height := 81; //ledtNotes.Height := 51; end; 中的某个项目并将其移至另一个名为lboMtrlList的{​​{1}}。这是代码:

TListBox

1 个答案:

答案 0 :(得分:4)

  

我希望能够双击lboMtrlList中的某个项目并将其移至另一个名为TListBox的{​​{1}}。

您的代码正在做相反的事情。它正在尝试将项目从lboSelectedMtrl移至lboSelectedMtrl。您收到边界错误,因为lboMtrlList中未选择任何项目(lboSelectedMtrl为-1)。

交换ListBox变量,并添加一些错误检查:

lboSelectedMtrl.ItemIndex