![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать перемещие по группам в DBGrid?
Unior © (2010-01-23 16:01:00)В DBGrid выводится информация из нескольких полей, первый из которых - Дата, по этому-же полю происходит сортировка. Как сделать чтобы по нажатию на кнопки "\/" или "/\" пользователь мог перемещаться не на одну строчку вниз/вверх, а сразу на ту, в которой будет следующее значение даты по убывающей/нарастающей?
Плохиш (2010-01-24 02:04:00) [1]
> Unior (23.01.10 19:50) [6]
Программиста надо нанять.
turbouser (2010-01-23 20:47:00) [2]
> Unior (23.01.10 19:50) [6]
Добавить еще одну проверку. Это домашнее задание ;)
Unior (2010-01-23 19:50:00) [3]> Плохиш © (23.01.10 18:59) [5]
> repeat
> next;
> until (d<>Fields[0].AsDateTime) or Eof;
Хитро! Спасибо!
А не подскажите - как бы доработать этот код, чтобы курсор при перемещении вверх вставал на первую сверху дату (а не снизу)?
> 19.01.2010
19.01.2010
19.01.2010 - а не сюда
20.01.2010
Плохиш (2010-01-23 18:59:00) [4]
> next; {или prior, в зависимости от кнопки}
> while not Eof do
> begin
> if d<>Fields[0].AsDateTime then
> Break;
> next; {или prior, в зависимости от кнопки}
> end;
>
=
repeat
next;
until (d<>Fields[0].AsDateTime) or Eof;
:-P
Unior (2010-01-23 17:15:00) [5]Благодарю, turbouser!
turbouser (2010-01-23 17:06:00) [6]while not
Bofdo если /\
:)
KilkennyCat (2010-01-23 17:05:00) [7]найти следующую\предыдущую дату и установить найденную запись текущей.
turbouser (2010-01-23 17:05:00) [8]Как-то так
var d:TDateTime;
with DataSet do
begin
DisableControls;
try
d:=Fields[0].AsDateTime
next; {или prior, в зависимости от кнопки}
while not Eof do
begin
if d<>Fields[0].AsDateTime then
Break;
next; {или prior, в зависимости от кнопки}
end;
finally
EnableControls;
end;
end;