Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];

Вниз

Как скрыть колонку в DBGrid ?   Найти похожие ветки 

 
<Evil>   (2008-09-29 18:48) [0]

Если я в конструкторе на колонке указываю
visible := false
то когда проэкт откомпилится то эта же колонка становится видимой...
также само обстоит дело и з изменениям розмеров колонок, меняются только в конструкторе....
можно канешно зделать в конструкторе формы
 DBGrid.Columns[0].Visible := false;
 DBGrid.Columns[1].Width := 80;
 DBGrid.Columns[2].Width := 160;

Но как бы это не особо визуально...


 
Anatoly Podgoretsky ©   (2008-09-29 18:53) [1]

> <Evil>  (29.09.2008 18:48:00)  [0]

Удалить колонку


 
Правильный$Вася   (2008-09-29 18:53) [2]


> Если я в конструкторе на колонке указываюvisible := falseто
> когда проэкт откомпилится

что есть "конструктор"?
это дизайн-тайм? или это метод-конструктор?


 
<Evil>   (2008-09-29 18:56) [3]

Да десинг-тайм


 
<Evil>   (2008-09-29 18:58) [4]


> Anatoly Podgoretsky ©   (29.09.08 18:53) [1]
> > <Evil>  (29.09.2008 18:48:00)  [0]Удалить колонку

Но с розмером те ж проблемы


 
Anatoly Podgoretsky ©   (2008-09-29 20:01) [5]

> <Evil>  (29.09.2008 18:58:04)  [4]

Да размер удалить нельзя.


 
Ega23 ©   (2008-09-29 20:05) [6]

width := -1


 
Anatoly Podgoretsky ©   (2008-09-29 20:12) [7]

Это не удаление.
Это извращение.
Должно быть Width.Delete


 
sniknik ©   (2008-09-29 22:30) [8]

> Но с розмером те ж проблемы
у меня нет... ни с видимостью ни с размерами, как пропишешь в десигне так и остается в рантайме...
правда у меня D7.

ааа... научите меня делать проблемы!!!


 
<Evil>   (2008-09-29 23:34) [9]

Незнаю как там седьмая делфья НО все размеры колонок в DBGrid
измененные в десинг тайме ПРИ КОМПИЛЯЦИИ теряются,,,
Я понимаю что в конструкторе формы можна и размер изменить или же
скрыть колонку НО это не есть решенния проблемы(так как не удобно).
Будут конструктивные предложения по решеннию проблемы?
Или же это глюк какой-то?


 
sniknik ©   (2008-09-30 00:54) [10]

> Я понимаю что в конструкторе формы можна и размер изменить или же
> скрыть колонку
какой конструктор? ты о чем вообще? лего конструктор знаю, больше не знаю...
детский конструктор Lеgо, детский деструктор ~Lеgо.

все делается в IDE, в десигне, "мастером" создаешь колонки, там же устанавливаешь желаемые параметры... все, никуда они не денутся, с подводной лодки. если не пересоздавать.

> Будут конструктивные предложения по решеннию проблемы?
> Или же это глюк какой-то?
самый популярный ответ на подобное, это  
1: нанять программиста (оччень эффективно и конструктивно. рекомендую)
сменить прокладку, между стулом и монитором (строго говоря это просто вариация первого высказывания).
2: ага, глюк, в ДНК.

p.s. сорри конечно, но такие популярные вопросы просто не могут остаться без популярных ответов... ;)


 
Германн ©   (2008-09-30 01:03) [11]

А DBGrid стандартный?
Если да, то справка по TField.DisplayWidth изучена?


 
<Evil>   (2008-09-30 02:25) [12]


> все делается в IDE, в десигне, "мастером" создаешь колонки,
>  там же устанавливаешь желаемые параметры... все, никуда
> они не денутся, с подводной лодки. если не пересоздавать.
>

ПОВТОРЯЮ ЧЕТВЕРТЫЙ РАЗ ЧТО ПАРАМЕТРЫ УКАЗАНЫЕ В ДЕСИНГ-ТАЙМЕ
УЖ БОЛЬНО ОТЛИЧАЮТСЯ ПОСЛЕ КОМПИЛЯЦИИ!!!

если я укажу для
DBGrid.Columns[1].Width := 80
в десинг-тайме то после компиляции получаю
DBGrid.Columns[1].Width  = ~1500


> Германн ©   (30.09.08 01:03) [11]
> А DBGrid стандартный? Если да, то справка по TField.DisplayWidth
> изучена?


Да DBGrid стандартный, если я правильно понял(плохо знаю английский) то на уже заполненые поля не будет никакого ефекта?


 
<Evil>   (2008-09-30 02:39) [13]

При том у меня еще используется TADOQuery, если реализовать установки параметров ДБГрида в рун-тайме то после выполненния Sql запроса колонки обратно розползаются...


 
Германн ©   (2008-09-30 02:56) [14]


> > Германн ©   (30.09.08 01:03) [11]
> > А DBGrid стандартный? Если да, то справка по TField.DisplayWidth
> > изучена?
>
>
> Да DBGrid стандартный, если я правильно понял(плохо знаю
> английский) то на уже заполненые поля не будет никакого
> ефекта?
>

Не. Справка в Д6 говорит немножко о другом. Исследовать исходники - сейчас нет времени.


 
ASoft   (2008-09-30 03:38) [15]


> <Evil>   (30.09.08 02:39) [13]
>
> При том у меня еще используется TADOQuery, если реализовать
> установки параметров ДБГрида в рун-тайме то после выполненния
> Sql запроса колонки обратно розползаются...

Что мешает после запроса снова назначить ширину колонок в DBGrid?


 
Сергей М. ©   (2008-09-30 08:18) [16]


> <Evil>


Это нормальное поведение компонента TDBGrid
И незачем так орать)


 
<Evil>   (2008-09-30 08:26) [17]


> Что мешает после запроса снова назначить ширину колонок
> в DBGrid?

Да в принципе нечего, но есть такое чуство что делается все гораздо проще, а я торможу по страшному... :)


 
<Evil>   (2008-09-30 08:30) [18]


> > <Evil>Это нормальное поведение компонента TDBGridИ незачем
> так орать)

Ну тут просто некие люди делают тонкие намеки и говорят что все делается в десинг-тайме и предлагаю сменить програмиста... :-)


 
Сергей М. ©   (2008-09-30 08:39) [19]


> тут просто некие люди делают тонкие намеки и говорят


Они-то говорят, а вот ты почему-то орешь)


 
sniknik ©   (2008-09-30 08:52) [20]

> ПОВТОРЯЮ ЧЕТВЕРТЫЙ РАЗ ЧТО ПАРАМЕТРЫ УКАЗАНЫЕ В ДЕСИНГ-ТАЙМЕ
> УЖ БОЛЬНО ОТЛИЧАЮТСЯ ПОСЛЕ КОМПИЛЯЦИИ!!!
ПОВТОРЯЮ ВО ВТОРОЙ РАЗ ПАРАМЕТРЫ УКАЗАНЫЕ В ДЕСИНГ-ТАЙМЕ
ТАКИМИ И ОСТАЮТСЯ ПОСЛЕ КОМПИЛЯЦИИ!!!
если я укажу для
DBGrid.Columns[1].Width := 80
в десинг-тайме то после компиляции получаю
DBGrid.Columns[1].Width  = 80

????

и очень хочу чтобы меня научили как сделать чтобы получилось ~1500...

Сергей М. ©   (30.09.08 08:18) [16]
> Это нормальное поведение компонента TDBGrid
серьезно? ну тогда хоть ты объясни как этого добиться? автор не хочет раскрывать своих секретов...
тока начни не с ширины, а с того с чего начался топик, видимости колонки (имхо проще. всего 2 варианта), вот сделали в десигне колонки, вот одной из них назначили visible = false;, проверили, посмотрели на грид, там же в десигне, поле скрылось. ок.
что дальше нужно делать чтобы не меняя значения и не пересоздавая колонку(так то естественно получится) это значение "скинулось" на дефаултное простой компиляцией?

только подробно по шагам, чтобы как говорится и дурак бы понял.


 
Сергей М. ©   (2008-09-30 09:07) [21]


> sniknik ©   (30.09.08 08:52) [20]


> объясни как этого добиться?


А оч просто - в DT установи ширину колонки так чтобы кэпшн колонки не умещался в эту ширину. В RT ширина колонки автоматически изменится в сторону увеличения, так чтобы кэпшн уместилась вся.


 
Сергей М. ©   (2008-09-30 09:10) [22]


> sniknik ©   (30.09.08 08:52) [20]


По кр.мере такое поведение станд.грида характерно для Д7.


 
sniknik ©   (2008-09-30 10:43) [23]

> А оч просто - в DT установи ширину колонки так чтобы кэпшн колонки не умещался в эту ширину.
просил начать с visible, подробно, что делать и, что по вашему должно произойти на каждом шаге (то что это реально происходит я не верю).
желательно чтобы это были не "теоретизирования".

но ладно, со своей стороны чтобы не быть голословным проверил и это (хотя и не сомневался) поставил ширину 10 для поля "AUTOID" с аналогичным заголовком, помещается только буква "A", запускаю программу, так и есть, вижу только "A".

в ответ хочу аналогичной проверки с установкой visible = false у какой нибудь (ну например 3й) колонки в датасете. именно установкой в DT, а не присваиванием гденибуть в рантайм, и не на "навороченном" проекте где уже сами не знаете что происходит, а на простом/новом, грид, датасет, источник, кода не надо, настраиваете (3я колонка невидима), запускаете... ???

> По кр.мере такое поведение станд.грида характерно для Д7.
у меня такого поведения нет, и не было ни когда, хотя пользуюсь "станд.гридом", и что характерно очень часто грид/колонки в десигне. видимость тоже (есть у такая возможность в моих прогах, давать скрыть ненужные колонки, а в начале они "преднастроены" т.е. показываются не  все возможные, а только основные. это настроено в десигне).

и вот я с этим работаю, работаю, еще чуть ли не с D5, а тут мне говорят это стандартно работать не может. ???
вы меня либо обманываете, либо делаете что-то не то, совсем не то, что говорите.


 
Ega23 ©   (2008-09-30 10:51) [24]


> вы меня либо обманываете, либо делаете что-то не то, совсем
> не то, что говорите.


Ты просто не умеешь находить проблемы на пустом месте. Это отвратительная и вредная привычка. Избавляйся от неё, пока не поздно.


 
sniknik ©   (2008-09-30 11:01) [25]

> Избавляйся от неё, пока не поздно.
как? научить никто не хочет, а у самого не получается. ;(


 
<Evil>   (2008-09-30 11:05) [26]

> sniknik ©   (30.09.08 10:43) [23]

>

> а на простом/новом, грид, датасет
</I
вот на датасете работает а на гриде нет! если интересно то могу исходник выложыть, всеже спасибо за то хоть сбольшим трудом но мы дошли до того момента где можна указать что бы все работало :-)


 
Сергей М. ©   (2008-09-30 11:07) [27]


> просил начать с 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 выглядел усеченным, изменилась в сторону увеличения, так что подпись теперь видна вся целиком.

Что я делаю неправильно ?


 
sniknik ©   (2008-09-30 11:17) [28]

> если интересно то могу исходник выложыть
давно пора, лучше вообще с этого начинать (не исходников конечно, а полной инфы, можно в виде исходников), а возгласы типа "ничего не работает, как исправить?" обычно не помогают.
кстати, весь твой проект мне не нужен, чтобы в нем разбираться, только пример, пример того как не работает, рабочие варианты я и сам легко делаю.
примере в ДЕСИГНЕ поставь, 3-ю колонку в гриде, невидимой. чтобы я знал куда смотреть, в рантайм она должна стать видимой. признак "нерабочести".

> хоть сбольшим трудом
мог бы не останавливаться, мог бы в пятый раз повторить, что там оно работает а там нет, не опускаясь до деталей... трудностей было бы больше. просто праздник мазохиста...


 
sniknik ©   (2008-09-30 11:23) [29]

> Что я делаю неправильно ?
ну, насколько вижу из описания. нет создания колонок в гриде. а без этого НЕВОЗМОЖНО задать им параметры.

> 3. Тяну мышью межколоночный сплиттер влево
у автосоздаваемой из датасета копии? она создается при открытии датасета. а что происходит с датасетом при старте программы?

говорил же, вы делаете не то.


 
Ega23 ©   (2008-09-30 11:24) [30]


> sniknik ©   (30.09.08 11:01) [25]
>
> > Избавляйся от неё, пока не поздно.
> как? научить никто не хочет, а у самого не получается. ;(


Как-как...
Почитай книжки, погугли, воспользуйся поиском по форуму... За тебя учиться никто не будет, тут никто никому ничего не должен. Если сам не можешь научиться - лопату в руки и вперёд, пока не поздно профессию дворника осваивать.
А если так надо, а сам не можешь - озвучь сумму, тут дофига народа есть, кому такая подработка не помешает.


 
Плохиш ©   (2008-09-30 11:24) [31]


> Сергей М. ©   (30.09.08 11:07) [27]

BDS2006, сделал всё по пунктам, но первый раз забыл пункт 2, ширина колонок изменилась. Выполнил пункт 2, ширина колонок не меняется.
Расстраиваюсь вместе с sniknik ©   (30.09.08 11:01) [25]


 
Anatoly Podgoretsky ©   (2008-09-30 11:37) [32]


> <Evil>   (29.09.08 23:34) [9]

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


 
Сергей М. ©   (2008-09-30 11:43) [33]


> Плохиш ©   (30.09.08 11:24) [31]


За БДС2006 ничего не скажу - я иллюстрировал ситуацию для Д7.


> sniknik ©   (30.09.08 11:23) [29]


> нет создания колонок в гриде. а без этого НЕВОЗМОЖНО задать
> им параметры


А мышью я что, спрашивается, делаю ? Как раз параметр width и меняю)

Теперь пробуй поелозить мышью над тем же самым сплиттером не влево с целью усечения, а вправо, так чтобы изменить дифолтное значение ширины колонки в сторону увеличения.

Сохраняем, собираем, запускаем - что видим ? Видим что визуальная ширина колонки в RT в точности соответствует ширине той же колонки в DT !

Вопрос на засыпку - откуда в RT взялось ожидаемое увеличенное значение ширины колонки, если колонки в гриде я в DT явно не создавал ?


 
Vlad Oshin ©   (2008-09-30 11:47) [34]

И меня все запоминается :)

пробегись по grid.columns[I].width, запомни в массив, после любого query пробегись по массиву заполни наоборот, раз такие проблемы..


 
Anatoly Podgoretsky ©   (2008-09-30 11:50) [35]

> sniknik  (30.09.2008 8:52:20)  [20]

Очень трудно, если человек научился делать 80, то 1500 у него никогда не получится.


 
Anatoly Podgoretsky ©   (2008-09-30 11:52) [36]

> sniknik  (30.09.2008 11:01:25)  [25]

Я могу взяться, хза 50000 бакинских, отбить мозги до такой степени.


 
<Evil>   (2008-09-30 11:53) [37]

А решенния нашлось...

Когда я связывал DBGrid с ADOQuery то установил параметр Connected для
ADOConnection равным true также для ADOQuery параметр Active тоже
равным true, при этом в DBGrid отобразились все заполненые поля(колонки),
при каком-то изменении параметров(в Десинг-Тайме):
width или visible после компиляции все измениия теряются.

решенния прибить все автоматически созданые колонки, и пересоздать их вручную


 
Anatoly Podgoretsky ©   (2008-09-30 11:54) [38]

> Плохиш  (30.09.2008 11:24:31)  [31]

Ты тоже хочешь научиться? Тогда выкладывай 50 000 бакинских.


 
Плохиш ©   (2008-09-30 12:04) [39]


> Anatoly Podgoretsky ©   (30.09.08 11:54) [38]

Не, сейчас я только долгами поделиться могу.


 
Сергей М. ©   (2008-09-30 12:06) [40]


> решенния прибить все автоматически созданые колонки, и пересоздать
> их вручную


За каким лешим их прибивать-то ? Чем они тебе, уже существующие, помешали ?
В любом месте своего кода где-либо перед визуализацией грида установи ширины колонок нужным образом, а для скрытия/показа нужных колонок установи соотв.образом св-во Visible соответствующих полей в коллекции активного дейтасета, из которого грид через дейтасурс берет данные для визуализации.


 
<Evil>   (2008-09-30 12:11) [41]


> Сергей М. ©   (30.09.08 12:06) [40]
> > решенния прибить все автоматически созданые колонки, и
> пересоздать > их вручнуюЗа каким лешим их прибивать-то ?
>  Чем они тебе, уже существующие, помешали ? В любом месте
> своего кода где-либо перед визуализацией грида установи
> ширины колонок нужным образом, а для скрытия/показа нужных
> колонок установи соотв.образом св-во Visible соответствующих
> полей в коллекции активного дейтасета, из которого грид
> через дейтасурс берет данные для визуализации.


Это зделать не вопрос, мне в Десинг-Тайме натсроить все размеры...


 
<Evil>   (2008-09-30 12:12) [42]

Хотелось


 
<Evil>   (2008-09-30 12:15) [43]

Всем спасибо за внимания...
Вопрос решен.


 
sniknik ©   (2008-09-30 12:34) [44]

> А мышью я что, спрашивается, делаю ? Как раз параметр width и меняю)
а после изменений, мышью, "выключи" датасет. размер остался, или колонки в общем?
а открытие повесть на кнопку, в рантайме ее нажмёшь. откуда взялись колонки?

вам меня уже не обмануть. я понял как и что вы делаете!

> Я могу взяться, хза 50000 бакинских, отбить мозги до такой степени.
не надо, я уже понял, как это работает (еще в [29]), теперь могу и сам потихоньку...

> Всем спасибо за внимания...
> Вопрос решен.
и даже не скажешь как?


 
sniknik ©   (2008-09-30 12:39) [45]

> За каким лешим их прибивать-то ? Чем они тебе, уже существующие, помешали ?
если они есть, то не надо. но если их нет... а в гриде ты их не создавал (описание) значит их нет. удобства от IDE с пред просмотром, в IDE же и останутся... а желание было настроить в программе.


 
sniknik ©   (2008-09-30 12:44) [46]

<Evil>   (30.09.08 11:53) [37]
> при этом в DBGrid отобразились все заполненые поля(колонки),
понимаешь, же. не создались а отобразились.

> решенния прибить все автоматически созданые колонки, и пересоздать их вручную
не пересоздать, а просто создать.
вот скажи когда ты мастер открыл, после описанных манипуляций, там хотя бы одна колонка созданная была? или контейнер был пуст?


 
<Evil>   (2008-09-30 12:46) [47]


> если они есть, то не надо. но если их нет... а в гриде ты
> их не создавал (описание) значит их нет. удобства от IDE
> с пред просмотром, в IDE же и останутся... а желание было
> настроить в программе.

ранее бы сюда кто-то ткнул носом :)

В гриде я их не создавал, они появились автоматиски при установке параметров Connected и Active равным true, и да это только оказалось
только пред просмотром, в *.dfm файл нечего не сохранялось(как выяснилось позже)


 
sniknik ©   (2008-09-30 13:14) [48]

> ранее бы сюда кто-то ткнул носом :)
sniknik ©   (30.09.08 00:54) [10]
> все делается в IDE, в десигне, "мастером" создаешь колонки, там же устанавливаешь желаемые параметры... все, никуда они не денутся, с подводной лодки. если не пересоздавать.

я тебе не понимай, ты мене не понимай... и вместо того чтобы объяснить, что ты реально делаешь, ты четыре раза повторял "не работает", и никакой полезной инфы.
реально начало что-то "обсуждаться" только с описания в Сергей М. ©   (30.09.08 11:07) [27]
хотя он и внес свои коррективы. сделал бы все сам как написано (либо в точности что писал я), недоразумений было бы меньше.
но это был первый пост с чем-то конкретным. что можно понять.


 
sniknik ©   (2008-09-30 13:16) [49]

> в *.dfm файл нечего не сохранялось(как выяснилось позже)
IDE непосредственно к программе никак не относится...


 
Anatoly Podgoretsky ©   (2008-09-30 14:10) [50]

> Сергей М.  (30.09.2008 12:06:40)  [40]

Затем, что кроме размера есть и другие характеристики, например положение, может быть пользовательские названия и т.д. поэтому иногда дешевле прибить и создать нужные по информации из реестра.


 
Anatoly Podgoretsky ©   (2008-09-30 14:12) [51]

> sniknik  (30.09.2008 12:34:44)  [44]

>> Я могу взяться, хза 50000 бакинских, отбить мозги до такой степени.
> не надо, я уже понял, как это работает (еще в [29]), теперь могу и сам потихоньку...

Думаешь я тебе поверю, что ты сам сделаешь, что можешь не сомневаюсь. Ну чего жмешься то? Я же не так много и прошу.



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.6 MB
Время: 0.006 c
2-1222610739
psp
2008-09-28 18:05
2008.11.09
Как подключить сервер Firebird 1.5. к Delpi 7?.


2-1222748643
Johnnnnnn
2008-09-30 08:24
2008.11.09
Проблема с all.tags(string?????) ?


6-1195066750
Алекс_
2007-11-14 21:59
2008.11.09
Номер сокета


8-1187600870
leonidus
2007-08-20 13:07
2008.11.09
приложение с GDI+ не запустилось на Win2000, что делать?


3-1209101225
дучф_ч
2008-04-25 09:27
2008.11.09
при удалении полей таблицы ее размер не уменьшается





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский