PDA

View Full Version : انتخاب چندین رکورد در dbgrid



ramin_mash
چهارشنبه 12 بهمن 1384, 08:31 صبح
سلام
من می خوام با گرفتن دکمه شیفت امکان انتخاب تمامی رکوردهای بین دو انتخابم در dbgridانتخاب شود و لازم نباشد یکی یکی انتخاب کنم .چه کار باید کنم؟
مثل خود access

Touska
چهارشنبه 12 بهمن 1384, 08:40 صبح
اینجا هست :

http://delphi.about.com/od/usedbvcl/l/aa032503a.htm

جانه من یکبار همه تو Google یک جستجو بکنن.

ramin_mash
چهارشنبه 12 بهمن 1384, 09:43 صبح
من این کارو انجام دادم منظورم این بود که لازم نباشه روی هر رکورد یکبار کلیک کنم که انتخاب بشه بلکه مثلا روی رکورد 10 کلیک کنم بعدش روی رکورد 50 بین این دو تمامشون انتخاب بشه

ramin_mash
پنج شنبه 13 بهمن 1384, 09:19 صبح
کسی نیست کمکم کنه؟

Laia2005
پنج شنبه 13 بهمن 1384, 12:35 عصر
http://delphi.about.com/cs/adptips2004/a/bltip0304_5.htm

ramin_mash
دوشنبه 17 بهمن 1384, 11:01 صبح
سلام
فکر کنم متوجه منظورم نشدید
من می خواهم رکورد 10و11و50 تا 100 را با کلیک کردن بر روی 10و11و50و100 را انتخاب کنم یعنی بین 50 و100 خودش انتخاب شود دقیقا مثل بانک اکسس
ممنون

vcldeveloper
سه شنبه 18 بهمن 1384, 04: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;