Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MultiSelect в TDBGrid [D5, Paradox]


BBCHa ©   (2006-09-29 00:52:00) 

Друзья подскажите плз как программно выделить несколько записей в TDBGrid???

Заранее спасибо всем неравнодушным:)


RebroFF   (2006-09-29 13:10:00) [1]

Я сильно извиняюсь. Не заметил слово "программно".


RebroFF   (2006-09-29 13:09:00) [2]

Я использую неподражаемый EhGrid из библиотеки EhLib.
Для начала нужно выставить

  EhGrid.Options := EhGrid.Options + [dgMultiSelect];
После этого любое выделение сделанное пользователем доступно через свойство TDBGridEh.Selection. Selection.SelectionType указывает на тип выделения:

 case EhGrid.Selection.SelectionType of
   gstNon: ShowMessage('Ничего не выделено');
   gstRecordBookmarks: ShowMessage('Выделено строк: '+IntToStr(EhGrid.Selection.Rows.Count));
   gstRectangle:
     begin
       ADODataSet.Bookmark := EhGrid.Selection.Rect.TopRow;
       S1 := ADODataSet.Fields[0].AsString;
       ADODataSet.Bookmark := EhGrid.Selection.Rect.BottomRow;
       S2 := ADODataSet.Fields[0].AsString;
       ShowMessage(Format('Выделено прямоугольник от закладки %s до закладки %s. От столбца %d до столбца %d',
         [S1,S2,
         EhGrid.Selection.Rect.LeftCol,
         EhGrid.Selection.Rect.RightCol]));
     end;
   gstColumns: ShowMessage('Выделено столбцов:'+IntToStr(EhGrid.Selection.Columns.Count));
   gstAll: ShowMessage('Выделен весь грид!');
 end;//case

Более подробный пример есть в Справке в EhLib.


Fay   (2006-09-29 01:12:00) [3]

 with DBGrid1, DataSource.DataSet do
   begin
     Options := Options + [dgMultiSelect];
     Next;
     SelectedRows.CurrentRowSelected := True;
     Next;
     Next;
     SelectedRows.CurrentRowSelected := True;
     Next;
     Next;
     SelectedRows.CurrentRowSelected := True;
   end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо