Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка в DBGridEh, по клику на заголовок 
:(
    Опции темы
gray_k
Дата 17.7.2003, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1015
Регистрация: 9.1.2003
Где: Москва

Репутация: 3
Всего: 22



Есть IBQyery. Визуальный компонент - DBGridEh. Знаю что в нём можно сделать сортировку при клике мышкой по заголовку столбца. А вот как это сделать?



--------------------
С уважением.
Gray.
PM MAIL   Вверх
Akella
Дата 21.7.2003, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Нужно писать обработку события OnTitleClick. Там есть параметр Column. И вот если Column = 0, т.е. пользователь кликнул на первом столбце, то сортируем таблицу по этому полю, выводим маркер сортировки(как его показать, я не помню), посмотри Demo, там есть.
Причем, обрати внимание на свойство столбца (дважды кликни на сетке). В каком-то свойстве (типа Style), нужно установить свойство в Button(кнопка), иначе столбец не будет реагировать на клик. А может это свойство прямо в таблице(а не в столбце). К сожалению на этот момент, у меня нет с собой конкретного примера, но если желаешь попоже я здесь его скину.

Это сообщение отредактировал(а) dsergey - 21.7.2003, 08:17
PM MAIL   Вверх
Medved
Дата 27.7.2003, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Нет, все гораздо проще, надо просто посмотреть примеры, поставляеммые с библиотекой. А в третьей версии это все реализовано автоматом.

Вот код:

Код

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;



--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.