سلام
براي اين كار ابتدا ليستي از اعدادي كه كاربر در Edit1 وارد كرده رو درون متغييري از نوع
Stringlist ذخيره ميكنيم . اين كار به كمك تابعي به نام Fill_list انجام ميشه كه در ادامه تعريف
خواهد شد . پس در قسمت Public فرم مينويسيم :
tmp:TStringList;
Procedure Fill_list(x:string);
تابع Fill_list به شكل زير تعريف ميشه :
procedure TForm1.Fill_list(x: string);
var
i,j:integer;
begin
tmp:=TStringList.Create;
j:=1;
for i := 1 to length(x) do
begin
if copy(x,i,1) = ',' then
begin
tmp.Add(copy(x,j,i-j));
j:=i+1;
end;
end;
tmp.Add(copy(x,j,i-j));
end;
حالا روي دكمه اي در فرم كد نهايي رو مينويسيم :
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
dbGrid1.SelectedRows.Clear;
Fill_list(edit1.Text);
for i := 0 to tmp.Count-1 do
begin
ADOQuery1.RecNo:=strtoint(tmp.Strings[i]);
dbGrid1.SelectedRows.CurrentRowSelected := True;
end;
end;
در ضمن به اين نكته هم توجه كنيد كه در هر لحظه شما فقط امكان انتخاب يك ركورد در Dataset
رو داريد . Highlight شدن چندين سطر از DBGrid فقط جنبه نمايشي داره و در واقع آخرين عددي كه
در ليست درج شده موقعيت واقعي در Dataset رو نشون ميده .
موفق باشيد .