Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

сохранение новой ширины колонки [D7, Paradox]


Настенька ©   (2004-10-14 16:07:00) 

Добрый вечер!!! У меня есть дбгрид. Во время работы приложения я меняю ширину колонки (св-во dgColumnResize=true),  но после того, как я делаю какой-нибудь запрос, новый размер ширины колонки меняется на старый. Как мне и где сохранить новое значение ширины колонки.


Zacho   (2004-10-19 21:41:00) [1]


> Axe

А какая разница ?

> Настенька  

Забей. Для твоей задачи это не нужно.


Axe   (2004-10-19 18:12:00) [2]

Маленький вопросик а записей(rows) в открываемых таблицах много(сколько)


сергей1   (2004-10-17 11:18:00) [3]

>я заранее не знаю, сколько у нее полей, и какой ширины будут колонки
я-же и говорю, вычисляй ширину колонки в событии DBGrid1DrawDataCell. Ну а если тебе надо, что-бы пользователь мог менять ширину, и это значение сохранялась, то следуй совету Виталий Панасенко.

w:=form1.DBGrid1.Columns[1].Width

после переоткрытия датасета :

form1.DBGrid1.Columns[1].Width:=w;


Настенька   (2004-10-17 11:07:00) [4]

так грид их сам выставляет. через opendialog я открываю любую таблицу, и грид ее отображает.


YurikGL   (2004-10-17 11:06:00) [5]


> Настенька   (17.10.04 10:48) [15]

Т.е. в одном гриде открываешь разные по структуре таблицы? А заголовки как тогда выставляешь?


Настенька   (2004-10-17 10:48:00) [6]

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


сергей1   (2004-10-17 09:42:00) [7]

2 Настенька
а зачем ты меняешь ширину колонок ? Надо делать так, что-бы он сразу возникал нужной ширины. Для полей фиксированной длины (числовых например), делай как говорит YurikGL ©. Если-же поле текстовое и длина строки может значительно меняться от строки к строке - то длину можно вычислить. (в событии DBGrid1DrawDataCell вычислять макс. длину строки и соответственно менять ширину колонок)


YurikGL   (2004-10-17 08:43:00) [8]


> Во время работы приложения я меняю ширину колонки (св-во
> dgColumnResize=true),  но после того, как я делаю какой-нибудь
> запрос, новый размер ширины колонки меняется на старый.
> Как мне и где сохранить новое значение ширины колонки.


Если я правильно понял, речь идет не о том, что после перезапуска программы ширина колонки меняется, а именно после нового запроса. Советую дважды кликнуть на TDBGrid в появившемя окне кликнуть на addAllFields и у появившихся колонок выставить нужную ширину.

Хотя ИМХО все это лучше делать с ehLib.


Zacho   (2004-10-16 21:58:00) [9]

Настенька   (16.10.04 20:53) [11]
Самое простое - использвать TDBGridEh из EhLib ( http://www.ehlib.com/RUS/default.htm)


Настенька   (2004-10-16 20:53:00) [10]

а может как-то попроще все это можно делать?


46_55_41_44   (2004-10-16 10:11:00) [11]

Можно использовать RxDbGrid + FormStorage (RxLib).
У RxDbGrid есть свойство IniStorage где указывается FormStorage.
В самом FormStorage указываешь ini файл куда все сохраняться будет(по умолчанию будет записываться в c:\WINDOWS(WINNT)\имяпроекта.ini)...


Andrey V.   (2004-10-15 13:41:00) [12]

Я бы посоветовал перейти на dbEhGrid там есть SaveColumnsLayoutIni/RestoreColumnsLayoutIni
(и много еще чего из-за чего стоит прейти на этот компонент)
вместе с шириной можно запомнить и номер колонки.

2Val: KHYF, но кончай прикалываться :-))
2Настенька: ИМХО - аббревиатура, что в расшифрованном виде означает "по моему скромному мнению"
см. http://a-vnukov.narod.ru/pages/otherpage.htm


Ильш   (2004-10-15 11:23:00) [13]

ini файл для хранения значений и отттуда считывай туда записывай
а как реализовать это все  - ну уж ващщщеее читайте доки!!!


Настенька   (2004-10-15 10:43:00) [14]

мне нужен пример кода, как предлагает господин Панасенко? сама я не знаю, как это сделать.


Val   (2004-10-15 10:40:00) [15]

а вы его не пишете?


Настенька   (2004-10-15 10:38:00) [16]

ну вот того, что предложил господин Панасенко. и мне конкретно код нужен?


Val   (2004-10-15 10:25:00) [17]

кто такой ИМХО?
Местный языческий божок. Его все упоминают всуе - чем больше - тем он будет благосклоннее.
а есть еще какие-нибудь способы получше.
получше чего?


Настенька   (2004-10-15 10:20:00) [18]

кто такой ИМХО? объясните мне. а есть еще какие-нибудь способы получше. может кто-то уже это конкретно делал?


Sergey13   (2004-10-15 09:50:00) [19]

2 Настенька   (14.10.04 16:07)
> но после того, как я делаю какой-нибудь запрос
Вряд ли от этого. Скорее, ИМХО, у тебя динамически создается форма с гридом при перезапросе - отсюда и потеря размеров. Если это так, то можно запоминать размеры колонок при закрытии формы и восстанавливать при создании. Или подумать о одновременном создании (и удалении ессно) формы грида, при создани формы с кнопкой открытия запроса.


Виталий Панасенко   (2004-10-15 09:39:00) [20]

До выполнения запроса запомни в переменной, после выполнения - поменяй ширину на запомненную...


Наверх

Титульная страница Поиск, карта сайта Написать письмо