|
#1
|
|||
|
|||
Свойства DBGrid
Какие свойства нужно изменить в DBGrid что бы нельзя было перетаскивать столбцы(т.е. менять их местами), но можно было изменять их размер?
|
#2
|
||||
|
||||
Ув Вurka Вы что то напутали поскольку я знаю что в DBGrid стандартно никоем случае не перетаскиваются между собой!
|
#3
|
||||
|
||||
Если я не ошибаюсь
работает только с dgColumnResize:=False;
|
#4
|
||||
|
||||
Но бурка имела ввиду что менять метсями Столбы!!
|
#5
|
||||
|
||||
Ход конем
Можно на событие ColumnMoved прописать в каком порядке должны стоять колонки.
Пример procedure TForm1.DBGrid1ColumnMoved(Sender: TObject; FromIndex, ToIndex: Integer); begin DbGrid1.Columns.Items[0].FieldName:='Имя_Поля1'; DbGrid1.Columns.Items[1].FieldName:='Имя_Поля2'; . . . end; И пусть перетаскивают сколько могут Последний раз редактировалось merdashka, 12.06.2007 в 16:31. |
#6
|
|||
|
|||
Оптимизация
merdashka, кстати в процедуру передаться индексы видимо тех столбцов которые поменяли место, думаю можно тока две штуки менять. А все накладно, у меня 140 столбцов)
|
#7
|
||||
|
||||
Хорошая мысль, но давай над этим подумаем завтра, может кто умней присоединится. У меня после рабочего дня голова как колокол. Обещаю завтра исправиться.
Если не изменялись размеры полей в Delphi, то наверное можно так: DbGrid1.Columns.RebuildColumns; |
#8
|
|||
|
|||
merdashka, Ладно, до завтра подожду))
Но есть такие проблемы: в Событии ColumnMoved бестолку что-либо менять. Ни один из вариантов не работает. Во-вторых Способ DbGrid1.Columns.Items[0].FieldName:='Имя_Поля1'; тоже не подходит т.к. меняться тока имя поле а не поле. И все же самый легкий способ найти какую-нибудь скрытую свойству типа NoMoveColumns.. Ну или найти способ в событии OnColumnMoved завершать это событие ничего не делая дальше, так как по-моему сначала вызываеться это событие, а потом тока меняться местами столбцы. Последний раз редактировалось Burka, 12.06.2007 в 17:29. |
#9
|
||||
|
||||
Вопрос решен
type
TGridAccess = class(TCustomGrid); procedure TForm1.FormCreate(Sender: TObject); begin with TGridAccess(DBGrid1) do Options := Options - [goColMoving]; end; |
#10
|
|||
|
|||
Отлично!
merdashka, Спасибо! Интересная фишка)) может чего еще полезного она сможет) надо будет почитать.
|