Главная страница
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.016 c
1-5651
Silver_
2003-02-20 15:50
2003.03.03
---|Ветка была без названия|---


1-5495
squab
2003-02-20 18:28
2003.03.03
вопрос по стринговой переменной


3-5415
kito
2003-02-12 15:59
2003.03.03
ADO и ODBC не получается на клиенте запустить прогу


1-5496
shodan
2003-02-20 17:39
2003.03.03
Timage


14-5807
passm
2003-02-13 11:02
2003.03.03
Пришлите dll, plz