名为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
答案 0 :(得分:4)
我希望能够双击
lboMtrlList
中的某个项目并将其移至另一个名为TListBox
的{{1}}。
您的代码正在做相反的事情。它正在尝试将项目从lboSelectedMtrl
移至lboSelectedMtrl
。您收到边界错误,因为lboMtrlList
中未选择任何项目(lboSelectedMtrl
为-1)。
交换ListBox变量,并添加一些错误检查:
lboSelectedMtrl.ItemIndex