Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

сохранение новой ширины колонки   Найти похожие ветки 

 
Настенька   (2004-10-14 16:07) [0]

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


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

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


 
Sergey13 ©   (2004-10-15 09:50) [2]

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


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

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


 
Val ©   (2004-10-15 10:25) [4]

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


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

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


 
Val ©   (2004-10-15 10:40) [6]

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


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

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


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

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


 
Andrey V. ©   (2004-10-15 13:41) [9]

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

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


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

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


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

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


 
Zacho ©   (2004-10-16 21:58) [12]

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


 
YurikGL ©   (2004-10-17 08:43) [13]


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


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

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


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

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


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

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


 
YurikGL ©   (2004-10-17 11:06) [16]


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

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


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

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


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

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

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

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

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


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

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


 
Zacho ©   (2004-10-19 21:41) [20]


> Axe

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

> Настенька  

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



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

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.024 c
9-1090802077
Xerx
2004-07-26 04:34
2004.11.21
Экспорт модели


1-1100011125
Zandrey
2004-11-09 17:38
2004.11.21
Как сохранить экземпляр класса


1-1100152104
Sidek
2004-11-11 08:48
2004.11.21
Навигация в ClientDataSet-е


14-1099394951
AlexG
2004-11-02 14:29
2004.11.21
Откопал топор войны и разжег огонь сопротивления


4-1096978886
andrey__
2004-10-05 16:21
2004.11.21
Избежать двойной запуск программы.