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

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

Выделить программно все строки в dbgrid е [D5, MSSQL]


shoo ©   (2003-05-30 10:23:00) 

Уважаемые мастера, требуется, собственно, сабж, например, при нажатии на кнопку. По хелпу догадываюсь, что связано с букмарками, но не могу сообразить, как это все по умному сделать. Заранее благодарю.


shoo   (2003-05-30 11:03:00) [1]

Спасибо всем большое, все действительно оказалось несложно.
Не судите строго, иногда даже очевидное трудно понять.


Zacho   (2003-05-30 10:58:00) [2]


> shoo (30.05.03 10:52)

Ответы ты уже получил :-)
А процедуру все-таки поправить проще. Достаточно заменить в ней цикл по SelectedRows на цикл по датасету и убрать переход на запись по букмаркам.


MrZeRo   (2003-05-30 10:56:00) [3]

Да прочитайте же HELP наконец!
RTFM!!!!!!

ADOQuery1.First;
while not ADOQuery1.EOF do
begin
DBGrid1.SelectedRows.CurrentRowSelected := True;
ADOQuery1.Next;
end;

Что, очень трудно????!!!!!


shoo   (2003-05-30 10:52:00) [4]

2 AlexSerp: Уже написанная и весьма немаленькая процедура обрабатывает ТОЛЬКО выделенные строки, мне кажется, что выделить все строки проще, нежели поправлять процедуру. Если это действительно архисложно, так и скажите, пойду по другому пути.

И все-таки хотелось бы получить ответ, а не вопрос.
Спасибо.


Zacho   (2003-05-30 10:48:00) [5]

В общем случае:
DBGrid.DataSource.DataSet.First;
while not DBGrid.DataSource.DataSet.Eof do
begin
DBGrid.SelectedRows.CurrentRowSelected:=true;
DBGrid.DataSource.DataSet.Next;
end;


гончий   (2003-05-30 10:47:00) [6]

Лови..только на больших таблицах будет притормаживать:
(c)2003 гончий :)
------------------------------------------------------
procedure TForm1.SelectAllRows;
var
Tbl: TDataSet;
pBm: TBookmark;
begin
Tbl := DbGrid1.DataSource.DataSet;
Tbl.DisableControls;
pBm := Tbl.GetBookmark;
Tbl.First;
try
while not Tbl.Eof do
begin
DBGrid1.SelectedRows.CurrentRowSelected := True;
Tbl.Next;
end;
finally
Tbl.GotoBookmark(pBm);
Tbl.FreeBookmark(pBm);
Tbl.EnableControls;
end;
end;


Соловьев   (2003-05-30 10:45:00) [7]

Наверное shoo именно хочет обрабатывать видимые строки, тогда ему надо просто занести в динамический масив Id записей по AfterScrol НД, а потом их обработать через SQL. Можно и по другому...


AlexSerp   (2003-05-30 10:32:00) [8]

Если надо потом обработывать все строки,
то для чего их выделять?
Объясни смысл программного выделения ВСЕХ строк.


Наверх

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