|
Платные хостинги
Раскрутка сайта
Книги по программированию
Сортировка в DBGridEh, по клику на заголовок
- Есть IBQyery. Визуальный компонент - DBGridEh. Знаю что в нём можно сделать сортировку при клике мышкой по заголовку столбца. А вот как это сделать?
- Нужно писать обработку события OnTitleClick. Там есть параметр Column. И вот если Column = 0, т.е. пользователь кликнул на первом столбце, то сортируем таблицу по этому полю, выводим маркер сортировки(как его показать, я не помню), посмотри Demo, там есть.Причем, обрати внимание на свойство столбца (дважды кликни на сетке). В каком-то свойстве (типа Style), нужно установить свойство в Button(кнопка), иначе столбец не будет реагировать на клик. А может это свойство прямо в таблице(а не в столбце). К сожалению на этот момент, у меня нет с собой конкретного примера, но если желаешь попоже я здесь его скину. Это сообщение отредактировал dsergey - 21.7.2003, 08:17
- Нет, все гораздо проще, надо просто посмотреть примеры, поставляеммые с библиотекой. А в третьей версии это все реализовано автоматом.Вот код:Код procedure TForm1.DBGridEh1SortMarkingChanged(Sender: TObject);var i: Integer; s: string; function DeleteStr(str: string; sunstr: string): string; var i: Integer; begin i := Pos(sunstr, str); if i <> 0 then Delete(str, i, Length(sunstr)); Result := str; end;begin if Query1.Active then begin s := ''; for i := 0 to DBGridEh1.SortMarkedColumns.Count - 1 do if DBGridEh1.SortMarkedColumns[i].Title.SortMarker = smUpEh then s := s + DBGridEh1.SortMarkedColumns[i].FieldName + ' DESC , ' else s := s + DBGridEh1.SortMarkedColumns[i].FieldName + ', '; if s <> '' then s := ' ORDER BY ' + Copy(s, 1, Length(s) - 2); s := DeleteStr(s, '1'); Query1.SQL.Strings[Query1.SQL.Count - 1] := s; Query1.Close; Query1.Open;end;highlightSyntax('delphiZTFjY2','delphi');
Интернет казино
Онлайн игры
Увеличение члена
Купить DVD
|