![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как поменять столбцы местами? [D2005]
И. Павел © (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]В дизайн-тайме можно просто в редакторе колонок перетащить мышкой.
Можно переделать запрос на нужный порядок полей если делаешь в ран-тайме.