Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.03;
Скачать: CL | DM;

Вниз

В DBGrid выделить несколько строк сразу   Найти похожие ветки 

 
Comwad ©   (2003-02-13 06:58) [0]

Добрых суток!
Подскажите, кто знает как в компоненте DBGrid можно выделить несколько строк сразу, а не через последовательный выбор с клавишей CTRL.
То есть, например, как в проводнике , выделив первую позицию и удерживая SHIFT выделяя последнюю получаем выбор из нескольких строк.
Спасибо.


 
Stas ©   (2003-02-13 09:25) [1]

По моему Никак.


 
Reindeer Moss Eater   (2003-02-13 09:38) [2]

Рецепт:

В каждом MouseDown, если не нажат Shift запоминать BookMark1.
В каждом MouseUp, если не нажат Shift освобождать BookMark1.
Если в MouseUp нажат шифт и есть BookMark1, запоминать BookMark2.

Определить какая из двух закладок ближе к началу датасета (CompareBookMark если BookMarkStable = True)

Стоя на одной из закладок, и зная в каком направлении находится вторая, передвигаться по датасету к ней, внося в SelectedRows какждую строку.

Последний абцац в косметических целях рекомендуется делать "задом-наперед", т.е. двигаясь от BookMark1 к BookMark2.



 
Comwad ©   (2003-02-14 08:04) [3]

Спасибо за совет Reindeer Moss Eater.
Сделал - все отлично работает.
Вот исходники - кому надо.
Думаю пригодится кому-нибудь.

var BM1,BM2:TBookmarkStr;

procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Main_MySelectRowsFromGrid(Sender, Shift);
end;


procedure TForm1.Main_MySelectRowsFromGrid(Sender: TObject; Shift: TShiftState);
begin
If (ssShift in Shift) then
Begin
If BM1 <> "" then
Begin
BM2:= (Sender as TDBGrid).DataSource.DataSet.Bookmark;
MySelectRowsFromGrid(Sender);
End
End
else
begin
BM1:= (Sender as TDBGrid).DataSource.DataSet.Bookmark;
BM2:="";
end;

end;


procedure TForm1.MySelectRowsFromGrid(Sender: TObject);

var i,q:Integer;

procedure MySelectRows(BM_Down,BM_Up:TBookmarkStr;_Down:Boolean);//1-



Страницы: 1 вся ветка

Текущий архив: 2003.03.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
3-5452
Alex127
2003-02-12 23:05
2003.03.03
Драйвер BDE FOXPRO и русский язык


7-5879
Evgeny Milovanov
2002-12-22 02:42
2003.03.03
Драйвер для джойстика!


9-5377
artgamer
2002-09-18 23:26
2003.03.03
ZShadows в GLScene


14-5809
CRACKISH
2003-02-07 08:44
2003.03.03
Компоненты


6-5694
Nikk085
2003-01-12 17:48
2003.03.03
Проблемма соединения через инет!