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

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

Как поменять столбцы местами? [D2005]


Страницы:   1 2

И. Павел ©   (2010-02-01 14:23:00) 

Здравствуйте.

Использую TDBGridEh (TDBGrid+дополнительные возможности). Подскажите, пожалуйста, как можно поменять местами столбцы, тоесть изменить порядок их следования на форме, а не в базе. Желательно поменять местами только два столбца, не меняя позиции остальных.
Пытался использовать свойство DBGridEh.Columns[i].Index:=, но при этом i-му полю автоматически присваивается index=0 а все остальные поля сдвигаются вправо. Можно, конечно, сделать и так, но это довольно запутанно. Может быть есть более удобный способ?


И. Павел   (2010-02-02 10:52:00) [21]


> А что, мышки нет у пользователя? Нажал и перетянул.

Мне нужно сделать форму, в которой есть два списка: список видимых и невидимых полей. Список видимых полей можно сортировать.
Перетаскивать мышкой сложно, так как в таблице может быть много полей.


Mike Kouzmine   (2010-02-02 10:46:00) [22]

А что, мышки нет у пользователя? Нажал и перетянул.


Германн   (2010-02-02 02:10:00) [23]


> Anatoly Podgoretsky ©   (01.02.10 19:25) [8]
>
> > 12  (01.02.2010 18:13:06)  [6]
>
> Неужели так бедно, что третьего нет?
>

Поиск третьего - анахронизм 20-го века.


Anatoly Podgoretsky   (2010-02-01 19:25:00) [24]

> 12  (01.02.2010 18:13:06)  [6]

Неужели так бедно, что третьего нет?


И Павел   (2010-02-01 18:27:00) [25]

Ясно. Спасибо.


12   (2010-02-01 18:13:00) [26]

угу.

просто задумался о способах перестановки двух чисел "без третьего" :)


И Павел   (2010-02-01 18:11:00) [27]


> 12 ©

Большое спасибо. Все работает!

А код


>   mov EAX,F
>   XCHG EAX,S
>   mov F,EAX


и


>   if F>S then
>   Begin
>     temp:=F;
>     F:=S;
>     S:=temp;
>   end;


это одно и то же?


12   (2010-02-01 17:17:00) [28]

напиши метод
не знаю как TDBGridEh, но по идее, должен

procedure TForm1.Button1Click(Sender: TObject);
begin
  ExChangeCol(2,5,DBGrid1);
end;

procedure TForm1.ExChangeCol(F, S: integer; var ADBGrid: TDBGrid);
begin
  if F>S then
  asm
   mov EAX,F
   XCHG EAX,S
   mov F,EAX
  end;
  ADBGrid.Columns[S].Index:=F;
  ADBGrid.Columns[F+1].Index:=S;
end;


И. Павел   (2010-02-01 16:59:00) [29]


> много строк

извиняюсь: столбцов


И. Павел   (2010-02-01 16:58:00) [30]


> Sergey13 ©

Спасибо, но нужно именно в run-тайме. В начальном запросе порядок полей не важен: я сразу же загружаю формат из INI файла, а теперь решил сделать окошко, позволяющее пользователю сортировать столбцы, выбирать видимые и менять ширину столбцов. Менять положение столбцов перетаскиванием неудобно, так как таблица содержит много строк.


Sergey13   (2010-02-01 14:55:00) [31]

В дизайн-тайме можно просто в редакторе колонок перетащить мышкой.
Можно переделать запрос на нужный порядок полей если делаешь в ран-тайме.


Страницы:   1 2

Наверх

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