Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.06.2007, 15:32
Burka Burka вне форума
Начинающий
 
Регистрация: 10.06.2007
Сообщения: 163
Репутация: 10
По умолчанию Свойства DBGrid

Какие свойства нужно изменить в DBGrid что бы нельзя было перетаскивать столбцы(т.е. менять их местами), но можно было изменять их размер?
Ответить с цитированием
  #2  
Старый 12.06.2007, 15:49
Аватар для Wipahacker
Wipahacker Wipahacker вне форума
Начинающий
 
Регистрация: 01.06.2007
Адрес: ДОНЕЦК
Сообщения: 112
Репутация: 10
По умолчанию

Ув Вurka Вы что то напутали поскольку я знаю что в DBGrid стандартно никоем случае не перетаскиваются между собой!
Ответить с цитированием
  #3  
Старый 12.06.2007, 16:03
Аватар для merdashka
merdashka merdashka вне форума
Новичок
 
Регистрация: 03.04.2007
Адрес: Ашгабат
Сообщения: 77
Репутация: 10
По умолчанию Если я не ошибаюсь

работает только с dgColumnResize:=False;
Ответить с цитированием
  #4  
Старый 12.06.2007, 16:10
Аватар для Wipahacker
Wipahacker Wipahacker вне форума
Начинающий
 
Регистрация: 01.06.2007
Адрес: ДОНЕЦК
Сообщения: 112
Репутация: 10
По умолчанию

Но бурка имела ввиду что менять метсями Столбы!!
Ответить с цитированием
  #5  
Старый 12.06.2007, 16:11
Аватар для merdashka
merdashka merdashka вне форума
Новичок
 
Регистрация: 03.04.2007
Адрес: Ашгабат
Сообщения: 77
Репутация: 10
По умолчанию Ход конем

Можно на событие 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  
Старый 12.06.2007, 17:02
Burka Burka вне форума
Начинающий
 
Регистрация: 10.06.2007
Сообщения: 163
Репутация: 10
По умолчанию Оптимизация

merdashka, кстати в процедуру передаться индексы видимо тех столбцов которые поменяли место, думаю можно тока две штуки менять. А все накладно, у меня 140 столбцов)
Ответить с цитированием
  #7  
Старый 12.06.2007, 17:21
Аватар для merdashka
merdashka merdashka вне форума
Новичок
 
Регистрация: 03.04.2007
Адрес: Ашгабат
Сообщения: 77
Репутация: 10
По умолчанию

Хорошая мысль, но давай над этим подумаем завтра, может кто умней присоединится. У меня после рабочего дня голова как колокол. Обещаю завтра исправиться.

Если не изменялись размеры полей в Delphi, то наверное можно так:
DbGrid1.Columns.RebuildColumns;
Ответить с цитированием
  #8  
Старый 12.06.2007, 17:26
Burka Burka вне форума
Начинающий
 
Регистрация: 10.06.2007
Сообщения: 163
Репутация: 10
По умолчанию

merdashka, Ладно, до завтра подожду))
Но есть такие проблемы:
в Событии ColumnMoved бестолку что-либо менять. Ни один из вариантов не работает.
Во-вторых Способ DbGrid1.Columns.Items[0].FieldName:='Имя_Поля1'; тоже не подходит т.к. меняться тока имя поле а не поле.


И все же самый легкий способ найти какую-нибудь скрытую свойству типа NoMoveColumns..
Ну или найти способ в событии OnColumnMoved завершать это событие ничего не делая дальше, так как по-моему сначала вызываеться это событие, а потом тока меняться местами столбцы.

Последний раз редактировалось Burka, 12.06.2007 в 17:29.
Ответить с цитированием
  #9  
Старый 12.06.2007, 17:46
Аватар для merdashka
merdashka merdashka вне форума
Новичок
 
Регистрация: 03.04.2007
Адрес: Ашгабат
Сообщения: 77
Репутация: 10
По умолчанию Вопрос решен

type

TGridAccess = class(TCustomGrid);



procedure TForm1.FormCreate(Sender: TObject);
begin
with TGridAccess(DBGrid1) do
Options := Options - [goColMoving];
end;
Ответить с цитированием
  #10  
Старый 12.06.2007, 18:44
Burka Burka вне форума
Начинающий
 
Регистрация: 10.06.2007
Сообщения: 163
Репутация: 10
По умолчанию Отлично!

merdashka, Спасибо! Интересная фишка)) может чего еще полезного она сможет) надо будет почитать.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:13.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter