![]() |
| ||
|
|
Новости |
Поиск |
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;
Но как бы это не особо визуально...
Плохиш (2008-09-30 11:24:00) [21]
> Сергей М. © (30.09.08 11:07) [27]
BDS2006, сделал всё по пунктам, но первый раз забыл пункт 2, ширина колонок изменилась. Выполнил пункт 2, ширина колонок не меняется.
Расстраиваюсь вместе с sniknik © (30.09.08 11:01) [25]
Ega23 (2008-09-30 11:24:00) [22]
> sniknik © (30.09.08 11:01) [25]
>
> > Избавляйся от неё, пока не поздно.
> как? научить никто не хочет, а у самого не получается. ;(
Как-как...
Почитай книжки, погугли, воспользуйся поиском по форуму... За тебя учиться никто не будет, тут никто никому ничего не должен. Если сам не можешь научиться - лопату в руки и вперёд, пока не поздно профессию дворника осваивать.
А если так надо, а сам не можешь - озвучь сумму, тут дофига народа есть, кому такая подработка не помешает.
sniknik (2008-09-30 11:23:00) [23]> Что я делаю неправильно ?
ну, насколько вижу из описания. нет создания колонок в гриде. а без этого НЕВОЗМОЖНО задать им параметры.
> 3. Тяну мышью межколоночный сплиттер влево
у автосоздаваемой из датасета копии? она создается при открытии датасета. а что происходит с датасетом при старте программы?
говорил же, вы делаете не то.
sniknik (2008-09-30 11:17:00) [24]> если интересно то могу исходник выложыть
давно пора, лучше вообще с этого начинать (не исходников конечно, а полной инфы, можно в виде исходников), а возгласы типа "ничего не работает, как исправить?" обычно не помогают.
кстати, весь твой проект мне не нужен, чтобы в нем разбираться, только пример, пример того как не работает, рабочие варианты я и сам легко делаю.
примере в ДЕСИГНЕ поставь, 3-ю колонку в гриде, невидимой. чтобы я знал куда смотреть, в рантайм она должна стать видимой. признак "нерабочести".
> хоть сбольшим трудом
мог бы не останавливаться, мог бы в пятый раз повторить, что там оно работает а там нет, не опускаясь до деталей... трудностей было бы больше. просто праздник мазохиста...
Сергей М. (2008-09-30 11:07:00) [25]
> просил начать с visible
Про визибл не знаю, не интересовался, я вообще-то про св-во колонки width, восстанавливаемое в RT из dfm, сгенерированного средой в DT.
> подробно, что делать
В DT:
1. На чистую форму шмякнул TTable, TDataSource, TDBGrid, связал их как положено, указал первуюю попавшуюся таблицу animals.db из DBDEMOS, установил Table.Active = True
2. В редакторе Fields Editor компонента TTable добавил все имеющиеся поля из указанной таблицы animals, после чего стала доступной возможность изменять мышью ширины колонок в TDBGrid
3. Тяну мышью межколоночный сплиттер влево, тем самым уменьшая дифолтную ширину колонки, так чтобы текст подписи колонки слева от сплиттера визуально не умещался, т.е. текст подпись визуально выглядел усеченным справа.
Сохраняем, компилим, строим проект, стартуем приложение.
в RT видим. что ширина той самой колонки, текст подписи которой в DT выглядел усеченным, изменилась в сторону увеличения, так что подпись теперь видна вся целиком.
Что я делаю неправильно ?
<Evil> (2008-09-30 11:05:00) [26]> sniknik © (30.09.08 10:43) [23]
>
> а на простом/новом, грид, датасет
</I
вот на датасете работает а на гриде нет! если интересно то могу исходник выложыть, всеже спасибо за то хоть сбольшим трудом но мы дошли до того момента где можна указать что бы все работало :-)
sniknik (2008-09-30 11:01:00) [27]> Избавляйся от неё, пока не поздно.
как? научить никто не хочет, а у самого не получается. ;(
Ega23 (2008-09-30 10:51:00) [28]
> вы меня либо обманываете, либо делаете что-то не то, совсем
> не то, что говорите.
Ты просто не умеешь находить проблемы на пустом месте. Это отвратительная и вредная привычка. Избавляйся от неё, пока не поздно.
sniknik (2008-09-30 10:43:00) [29]> А оч просто - в DT установи ширину колонки так чтобы кэпшн колонки не умещался в эту ширину.
просил начать с visible, подробно, что делать и, что по вашему должно произойти на каждом шаге (то что это реально происходит я не верю).
желательно чтобы это были не "теоретизирования".
но ладно, со своей стороны чтобы не быть голословным проверил и это (хотя и не сомневался) поставил ширину 10 для поля "AUTOID" с аналогичным заголовком, помещается только буква "A", запускаю программу, так и есть, вижу только "A".
в ответ хочу аналогичной проверки с установкой visible = false у какой нибудь (ну например 3й) колонки в датасете. именно установкой в DT, а не присваиванием гденибуть в рантайм, и не на "навороченном" проекте где уже сами не знаете что происходит, а на простом/новом, грид, датасет, источник, кода не надо, настраиваете (3я колонка невидима), запускаете... ???
> По кр.мере такое поведение станд.грида характерно для Д7.
у меня такого поведения нет, и не было ни когда, хотя пользуюсь "станд.гридом", и что характерно очень часто грид/колонки в десигне. видимость тоже (есть у такая возможность в моих прогах, давать скрыть ненужные колонки, а в начале они "преднастроены" т.е. показываются не все возможные, а только основные. это настроено в десигне).
и вот я с этим работаю, работаю, еще чуть ли не с D5, а тут мне говорят это стандартно работать не может. ???
вы меня либо обманываете, либо делаете что-то не то, совсем не то, что говорите.
Сергей М. (2008-09-30 09:10:00) [30]
> sniknik © (30.09.08 08:52) [20]
По кр.мере такое поведение станд.грида характерно для Д7.
Сергей М. (2008-09-30 09:07:00) [31]
> sniknik © (30.09.08 08:52) [20]
> объясни как этого добиться?
А оч просто - в DT установи ширину колонки так чтобы кэпшн колонки не умещался в эту ширину. В RT ширина колонки автоматически изменится в сторону увеличения, так чтобы кэпшн уместилась вся.
sniknik (2008-09-30 08:52:00) [32]> ПОВТОРЯЮ ЧЕТВЕРТЫЙ РАЗ ЧТО ПАРАМЕТРЫ УКАЗАНЫЕ В ДЕСИНГ-ТАЙМЕ
> УЖ БОЛЬНО ОТЛИЧАЮТСЯ ПОСЛЕ КОМПИЛЯЦИИ!!!
ПОВТОРЯЮ ВО ВТОРОЙ РАЗ ПАРАМЕТРЫ УКАЗАНЫЕ В ДЕСИНГ-ТАЙМЕ
ТАКИМИ И ОСТАЮТСЯ ПОСЛЕ КОМПИЛЯЦИИ!!!
если я укажу для
DBGrid.Columns[1].Width := 80
в десинг-тайме то после компиляции получаю
DBGrid.Columns[1].Width = 80
????
и очень хочу чтобы меня научили как сделать чтобы получилось ~1500...
Сергей М. © (30.09.08 08:18) [16]
> Это нормальное поведение компонента TDBGrid
серьезно? ну тогда хоть ты объясни как этого добиться? автор не хочет раскрывать своих секретов...
тока начни не с ширины, а с того с чего начался топик, видимости колонки (имхо проще. всего 2 варианта), вот сделали в десигнеколонки, вот одной из них назначили visible = false;, проверили, посмотрели на грид, там же в десигне, поле скрылось. ок.
что дальше нужно делать чтобы не меняя значения и не пересоздавая колонку(так то естественно получится) это значение "скинулось" на дефаултное простой компиляцией?
только подробно по шагам, чтобы как говорится и дурак бы понял.
Сергей М. (2008-09-30 08:39:00) [33]
> тут просто некие люди делают тонкие намеки и говорят
Они-то говорят, а вот ты почему-то орешь)
<Evil> (2008-09-30 08:30:00) [34]
> > <Evil>Это нормальное поведение компонента TDBGridИ незачем
> так орать)
Ну тут просто некие люди делают тонкие намеки и говорят что все делается в десинг-тайме и предлагаю сменить програмиста... :-)
<Evil> (2008-09-30 08:26:00) [35]
> Что мешает после запроса снова назначить ширину колонок
> в DBGrid?
Да в принципе нечего, но есть такое чуство что делается все гораздо проще, а я торможу по страшному... :)
Сергей М. (2008-09-30 08:18:00) [36]
> <Evil>
Это нормальное поведение компонента TDBGrid
И незачем так орать)
ASoft (2008-09-30 03:38:00) [37]
> <Evil> (30.09.08 02:39) [13]
>
> При том у меня еще используется TADOQuery, если реализовать
> установки параметров ДБГрида в рун-тайме то после выполненния
> Sql запроса колонки обратно розползаются...
Что мешает после запроса снова назначить ширину колонок в DBGrid?
Германн (2008-09-30 02:56:00) [38]
> > Германн © (30.09.08 01:03) [11]
> > А DBGrid стандартный? Если да, то справка по TField.DisplayWidth
> > изучена?
>
>
> Да DBGrid стандартный, если я правильно понял(плохо знаю
> английский) то на уже заполненые поля не будет никакого
> ефекта?
>
Не. Справка в Д6 говорит немножко о другом. Исследовать исходники - сейчас нет времени.
<Evil> (2008-09-30 02:39:00) [39]При том у меня еще используется TADOQuery, если реализовать установки параметров ДБГрида в рун-тайме то после выполненния Sql запроса колонки обратно розползаются...
<Evil> (2008-09-30 02:25:00) [40]
> все делается в IDE, в десигне, "мастером" создаешь колонки,
> там же устанавливаешь желаемые параметры... все, никуда
> они не денутся, с подводной лодки. если не пересоздавать.
>
ПОВТОРЯЮ ЧЕТВЕРТЫЙ РАЗ ЧТО ПАРАМЕТРЫ УКАЗАНЫЕ В ДЕСИНГ-ТАЙМЕ
УЖ БОЛЬНО ОТЛИЧАЮТСЯ ПОСЛЕ КОМПИЛЯЦИИ!!!
если я укажу для
DBGrid.Columns[1].Width := 80
в десинг-тайме то после компиляции получаю
DBGrid.Columns[1].Width = ~1500
> Германн © (30.09.08 01:03) [11]
> А DBGrid стандартный? Если да, то справка по TField.DisplayWidth
> изучена?
Да DBGrid стандартный, если я правильно понял(плохо знаю английский) то на уже заполненые поля не будет никакого ефекта?