Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Внизсохранение новой ширины колонки Найти похожие ветки
← →
Настенька (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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.033 c