我正在研究 Delphi 7。我有一个 TListBox 和一个 TStringGrid 有两列(没有固定的行或列)。我在 TListBox 中有如下数据:
可用元素 - a123 (a123) 可用元素 - a1234 (a1234) 可用元素 - a12345 (a12345)
TStringGrid 具有以下数据:
列 1 列 2
a1 可用元素 - a1 a2 可用元素 - a12
如果我选择 TListbox 中的第一项,即 a123 并执行以下按钮单击事件过程,那么最后一项数据,即 a12345 将被移动到网格中。
任何人都可以把重点放在我在下面的代码中做错了什么。以下代码将 TListbox 中的已选择项移动到 TStringgird 的两列:
procedure TForm1.btnMoveLeftClick(Sender: TObject);
var
sString : String;
i : Integer;
begin
for i := 0 to ListBox1.Items.Count - 1 do
begin
{-- Is this status selected? --}
if ListBox1.Selected[i] then
begin
sString := Trim(ListBox1.Items[i]);
{-- Delete selected status. --}
ListBox1.Items.Delete (i);
if ((grdVFormDetails.RowCount >= 1) And (Trim(grdVFormDetails.Cells[0, 0]) <> EmptyStr)) then
grdVFormDetails.RowCount := grdVFormDetails.RowCount+1;
grdVFormDetails.Cols[1].Add(Copy(sString, 1, Pos('(', sString) - 1));
sString := Copy(sString, Pos('(', sString) + 1, Length(sString));
sString := Copy(sString, Pos('(', sString) + 1, Length(sString) - 1);
grdVFormDetails.Cols[0].Add(sString);
break;
end;
end;
end;