私は Delphi 7 に取り組んでいます。1 つの TListBox と 2 つの列を持つ 1 つの TStringGrid があります (行や列が固定されていません)。次のように TListBox にデータがあります。
利用可能な要素 - a123 (a123) 利用可能な要素 - a1234 (a1234) 利用可能な要素 - a12345 (a12345)
また、TStringGrid には次のようなデータがあります。
列1 列2
a1 利用可能な要素 - a1 a2 利用可能な要素 - a12
TListbox の最初のアイテム (a123) を選択し、次のボタン クリック イベント プロシージャを実行すると、最後のアイテム データ (a12345) がグリッドに移動します。
次のコードで私が間違っていることに誰かが焦点を当てることができますか? 次のコードは、TListbox で選択した項目を TStringgird の 2 つの列に移動します。
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;