![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как скрыть колонку в DBGrid ? [D2005, XP]
<Evil> © (2008-09-29 18:48:00)Если я в конструкторе на колонке указываю
visible := false
то когда проэкт откомпилится то эта же колонка становится видимой...
также само обстоит дело и з изменениям розмеров колонок, меняются только в конструкторе....
можно канешно зделать в конструкторе формы
DBGrid.Columns[0].Visible := false;
DBGrid.Columns[1].Width := 80;
DBGrid.Columns[2].Width := 160;
Но как бы это не особо визуально...
Anatoly Podgoretsky (2008-09-30 14:12:00) [1]> sniknik (30.09.2008 12:34:44) [44]
>> Я могу взяться, хза 50000 бакинских, отбить мозги до такой степени.
> не надо, я уже понял, как это работает (еще в [29]), теперь могу и сам потихоньку...
Думаешь я тебе поверю, что ты сам сделаешь, что можешь не сомневаюсь. Ну чего жмешься то? Я же не так много и прошу.
Anatoly Podgoretsky (2008-09-30 14:10:00) [2]> Сергей М. (30.09.2008 12:06:40) [40]
Затем, что кроме размера есть и другие характеристики, например положение, может быть пользовательские названия и т.д. поэтому иногда дешевле прибить и создать нужные по информации из реестра.
sniknik (2008-09-30 13:16:00) [3]> в *.dfm файл нечего не сохранялось(как выяснилось позже)
IDE непосредственно к программе никак не относится...
sniknik (2008-09-30 13:14:00) [4]> ранее бы сюда кто-то ткнул носом :)
sniknik © (30.09.08 00:54) [10]
> все делается в IDE, в десигне, "мастером" создаешьколонки, там же устанавливаешь желаемые параметры... все, никуда они не денутся, с подводной лодки. если не пересоздавать.
я тебе не понимай, ты мене не понимай... и вместо того чтобы объяснить, что ты реально делаешь, ты четыре раза повторял "не работает", и никакой полезной инфы.
реально начало что-то "обсуждаться" только с описания в Сергей М. © (30.09.08 11:07) [27]
хотя он и внес свои коррективы. сделал бы все сам как написано (либо в точности что писал я), недоразумений было бы меньше.
но это был первый пост с чем-то конкретным. что можно понять.
<Evil> (2008-09-30 12:46:00) [5]
> если они есть, то не надо. но если их нет... а в гриде ты
> их не создавал (описание) значит их нет. удобства от IDE
> с пред просмотром, в IDE же и останутся... а желание было
> настроить в программе.
ранее бы сюда кто-то ткнул носом :)
В гриде я их не создавал, они появились автоматиски при установке параметров Connected и Active равным true, и да это только оказалось
только пред просмотром, в *.dfm файл нечего не сохранялось(как выяснилось позже)
sniknik (2008-09-30 12:44:00) [6]<Evil> (30.09.08 11:53) [37]
> при этом в DBGrid отобразилисьвсе заполненые поля(колонки),
понимаешь, же. не создались а отобразились.
> решенния прибить все автоматически созданые колонки, и пересоздать их вручную
не пересоздать, а просто создать.
вот скажи когда ты мастер открыл, после описанных манипуляций, там хотя бы одна колонка созданная была? или контейнер был пуст?
sniknik (2008-09-30 12:39:00) [7]> За каким лешим их прибивать-то ? Чем они тебе, уже существующие, помешали ?
если они есть, то не надо. но если их нет... а в гриде ты их не создавал(описание) значит их нет. удобства от IDE с пред просмотром, в IDE же и останутся... а желание было настроить в программе.
sniknik (2008-09-30 12:34:00) [8]> А мышью я что, спрашивается, делаю ? Как раз параметр width и меняю)
а после изменений, мышью, "выключи" датасет. размер остался, или колонки в общем?
а открытие повесть на кнопку, в рантайме ее нажмёшь. откуда взялись колонки?
вам меня уже не обмануть. я понял как и что вы делаете!
> Я могу взяться, хза 50000 бакинских, отбить мозги до такой степени.
не надо, я уже понял, как это работает (еще в [29]), теперь могу и сам потихоньку...
> Всем спасибо за внимания...
> Вопрос решен.
и даже не скажешь как?
<Evil> (2008-09-30 12:15:00) [9]Всем спасибо за внимания...
Вопрос решен.
<Evil> (2008-09-30 12:12:00) [10]Хотелось
<Evil> (2008-09-30 12:11:00) [11]
> Сергей М. © (30.09.08 12:06) [40]
> > решенния прибить все автоматически созданые колонки, и
> пересоздать > их вручнуюЗа каким лешим их прибивать-то ?
> Чем они тебе, уже существующие, помешали ? В любом месте
> своего кода где-либо перед визуализацией грида установи
> ширины колонок нужным образом, а для скрытия/показа нужных
> колонок установи соотв.образом св-во Visible соответствующих
> полей в коллекции активного дейтасета, из которого грид
> через дейтасурс берет данные для визуализации.
Это зделать не вопрос, мне в Десинг-Тайме натсроить все размеры...
Сергей М. (2008-09-30 12:06:00) [12]
> решенния прибить все автоматически созданые колонки, и пересоздать
> их вручную
За каким лешим их прибивать-то ? Чем они тебе, уже существующие, помешали ?
В любом месте своего кода где-либо передвизуализацией грида установи ширины колонок нужным образом, а для скрытия/показа нужных колонок установи соотв.образом св-во Visible соответствующих полей в коллекции активного дейтасета, из которого грид через дейтасурс берет данные для визуализации.
Плохиш (2008-09-30 12:04:00) [13]
> Anatoly Podgoretsky © (30.09.08 11:54) [38]
Не, сейчас я только долгами поделиться могу.
Anatoly Podgoretsky (2008-09-30 11:54:00) [14]> Плохиш (30.09.2008 11:24:31) [31]
Ты тоже хочешь научиться? Тогда выкладывай 50 000 бакинских.
<Evil> (2008-09-30 11:53:00) [15]А решенния нашлось...
Когда я связывал DBGrid с ADOQuery то установил параметр Connected для
ADOConnection равным true также для ADOQuery параметр Active тоже
равным true, при этом в DBGrid отобразились все заполненые поля(колонки),
при каком-то изменении параметров(в Десинг-Тайме):
width или visible после компиляции все измениия теряются.
решенния прибить все автоматически созданые колонки, и пересоздать их вручную
Anatoly Podgoretsky (2008-09-30 11:52:00) [16]> sniknik (30.09.2008 11:01:25) [25]
Я могу взяться, хза 50000 бакинских, отбить мозги до такой степени.
Anatoly Podgoretsky (2008-09-30 11:50:00) [17]> sniknik (30.09.2008 8:52:20) [20]
Очень трудно, если человек научился делать 80, то 1500 у него никогда не получится.
Vlad Oshin (2008-09-30 11:47:00) [18]И меня все запоминается :)
пробегись по grid.columns[I].width, запомни в массив, после любого query пробегись по массиву заполни наоборот, раз такие проблемы..
Сергей М. (2008-09-30 11:43:00) [19]
> Плохиш © (30.09.08 11:24) [31]
За БДС2006 ничего не скажу - я иллюстрировал ситуацию для Д7.
> sniknik © (30.09.08 11:23) [29]
> нет создания колонок в гриде. а без этого НЕВОЗМОЖНО задать
> им параметры
А мышью я что, спрашивается, делаю ? Как раз параметр width и меняю)
Теперь пробуй поелозить мышью над тем же самым сплиттером не влево с целью усечения, а вправо, так чтобы изменить дифолтное значение ширины колонки в сторону увеличения.
Сохраняем, собираем, запускаем - что видим ? Видим что визуальная ширина колонки в RT в точности соответствует ширине той же колонки в DT !
Вопрос на засыпку - откуда в RT взялось ожидаемое увеличенное значение ширины колонки, если колонки в гриде я в DT явно не создавал ?
Anatoly Podgoretsky (2008-09-30 11:37:00) [20]
> <Evil> (29.09.08 23:34) [9]
Все что можно сделать в дизайн, можно и много больше сделать в рантайм, а уж такая мелочь как размеры колонок доступна даже не программирующему пользователю.