Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.045 c
8-1092520128
parovoZZ
2004-08-15 01:48
2004.11.21
Блокировка поверхности


1-1099837147
sloug
2004-11-07 17:19
2004.11.21
Вертикальная надпись на кнопке


1-1100020470
Cheburek
2004-11-09 20:14
2004.11.21
Потокобезопасные типы хранения данных ?


14-1099837403
ИМХО
2004-11-07 17:23
2004.11.21
Москва vs. Мухосранск


3-1098360528
VadimKV
2004-10-21 16:08
2004.11.21
выбор значения из поля типа TimeStamp с помощью Case




   Наверх