View Full Version : انتخاب چندین رکورد در dbgrid
  
ramin_mash
چهارشنبه 12 بهمن 1384, 09:31 صبح
سلام
من می خوام با گرفتن دکمه شیفت امکان انتخاب تمامی رکوردهای بین دو انتخابم در dbgridانتخاب شود و لازم نباشد یکی یکی انتخاب کنم .چه کار باید کنم؟
مثل خود access
Touska
چهارشنبه 12 بهمن 1384, 09:40 صبح
اینجا هست :
http://delphi.about.com/od/usedbvcl/l/aa032503a.htm
جانه من یکبار همه تو Google یک جستجو بکنن.
ramin_mash
چهارشنبه 12 بهمن 1384, 10:43 صبح
من این کارو انجام دادم منظورم این بود که لازم نباشه روی هر رکورد یکبار کلیک کنم که انتخاب بشه بلکه مثلا روی رکورد 10 کلیک کنم بعدش روی رکورد 50 بین این دو تمامشون انتخاب بشه
ramin_mash
پنج شنبه 13 بهمن 1384, 10:19 صبح
کسی نیست کمکم کنه؟
Laia2005
پنج شنبه 13 بهمن 1384, 13:35 عصر
http://delphi.about.com/cs/adptips2004/a/bltip0304_5.htm
ramin_mash
دوشنبه 17 بهمن 1384, 12:01 عصر
سلام
فکر کنم متوجه منظورم نشدید
من می خواهم رکورد 10و11و50 تا 100 را با کلیک کردن بر روی 10و11و50و100 را انتخاب کنم یعنی بین 50 و100 خودش انتخاب شود دقیقا مثل بانک اکسس
ممنون
vcldeveloper
سه شنبه 18 بهمن 1384, 05:20 صبح
var
  SelStart : integer = -1;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
  i : integer;
  SelCount : integer;
  DBGrid : TDBGrid;
begin
  DBGrid := DBGrid1;
  if not DBGrid.DataSource.DataSet.Active then
    Exit;
  //If Shift is pressed
  if GetKeyState(VK_SHIFT) < 0 then
  begin
    if SelStart = -1 then
      SelStart := DBGrid.DataSource.DataSet.RecNo
    else
    begin
      SelCount := DBGrid.DataSource.DataSet.RecNo - SelStart;
      for i := 0 to ABS(SelCount) do
      begin
        if SelCount > 0 then
          DBGrid.DataSource.DataSet.RecNo := SelStart + i
        else
          DBGrid.DataSource.DataSet.RecNo := SelStart - i;
        DBGrid.SelectedRows.CurrentRowSelected := True;
      end;
      SelStart := -1; //reset the first selected row's indicator
    end;
  end;
end;
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.