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

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

Сохранение свойств колонок DBGrida при открытии/закрытии датасета [D6]


Страницы:   1 2

alexEagle ©   (2003-12-18 12:09:00) 

Где нужно написать свой код для сохранения свойств колонок DBGrida при открытии/закрытии датасета?


alexEagle   (2003-12-18 15:06:00) [1]

Огромное спасибо Silver Alex ©, который (единственный) не только понял суть вопроса, но и дал правильный ответ. Остальным досвидания.


Vlad   (2003-12-18 15:06:00) [2]

Одно все-таки непонятно, зачем все это делать при открытии/закрытии набора данных и какой в этом глубокий смысл? Почему нельзя сохранять/восстанавливать параметры при создании/уничтожении грида ?


MV   (2003-12-18 15:05:00) [3]

2 Йурок. YuRock (18.12.03 14:54) [30]
У меня таких гридов в последнем проекте - штук 150 на сегодняшней день.
Насчет работы. Про ООП слышал? Создаешь базовый фрейм (форму), вгоняешь туда всю общую функциональность, и наследуешь от него для реализации нужных интимный подробностей.
Насчет объема - то же. У меня экзешник - чуть больше 4МБ, и не из-за усиленной работы с реестром.


Silver Alex   (2003-12-18 15:01:00) [4]


> Vlad © (18.12.03 14:51) [29]

я просто ответил на вопрос, "Код восстановления должен идти непосредственно после реакции грида на изменение свойства тэйбл коненктед на TRUE, а сохранения - при изменении на FALSE. "а как и чего там будет реализовано, на совести автора.А какой вариант лучше? Ах да , использовать GridEh. НУ хочет человек сам написать.Похвально


Плохиш_   (2003-12-18 14:56:00) [5]


> Vlad © (18.12.03 14:51) [29]
> Насчет LinkActive не лучший вариант.
> При каждом рефреше у него будет сохранение/восстановление
> параметров :)

Так, тут ему все карты в руки ;-)
Проверяй, не изменилась ли структура данньх, при открытии, хотя при закрытии придётся всё время сохранять.


YuRock   (2003-12-18 14:54:00) [6]

MV [28] -

Из-за таких "умных людей" прийдется при каждом использовании грида (создании новой табличной панели с формой) самому что-то указывать (как минимум) GridEh.
А если таких гридов 100? Это как экзешник разростется? И сколько работы?


Vlad   (2003-12-18 14:51:00) [7]

Насчет LinkActive не лучший вариант.
При каждом рефреше у него будет сохранение/восстановление параметров :)


MV   (2003-12-18 14:49:00) [8]

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


nik222   (2003-12-18 14:46:00) [9]

По моему автор вопроса чрезмерно лениив.
Тебе же уже ответили в GridEH есть свойста сохранения и восстановления
параметров.
Ну если тебе так хочется сделай наследника из GridEH со своим
свойством - ИМЯ ФАЙЛА, и каждый раз при открытии/закрытии
DataLink DBGria сохраняй или восстанавливай значения


MV   (2003-12-18 14:45:00) [10]

И что, будешь каждый раз при ре-коннекшн дергать грид?
"Ну, за искусство!"


Silver Alex   (2003-12-18 14:42:00) [11]

вроде вот это , но проверь еще внимательнее

TMainDBGrid=class(TDBGrid)
protected
procedure LinkActive(Value: Boolean);override;
public

published

end;

procedure TMainDBGrid.LinkActive(Value: Boolean);
begin
inherited;
if Value then
ShowMessage("Open")
else
ShowMessage("Close");
end;


alexEagle   (2003-12-18 14:37:00) [12]

MV -> Как раз очень благодарное.
Я создаю компонент унаследованный от ДБГрида, добавляю свойство - имя файла для сохранения/восстановления и потом просто ракладываю его по формам. И все работает само. Пожалуй единственное, что надо сделать - это указать имя файла.

Вот так это должно работать, и единственное, что я не знаю - где в моем классе, унаследованном от ДБГрида вставить код сохранения/восстановления.

Код восстановления должен идти непосредственно после реакции грида на изменение свойства тэйбл коненктед на TRUE, а сохранения - при изменении на FALSE. Но ни в коем случае не в самом датасете. Поскольку датасет вообще не должен знать какой компонент его юзает.


MV   (2003-12-18 14:27:00) [13]

Сохранять в самом гриде - дело неблагодарное. Лучше создай рабочий фрейм (как в примере), куда размести и грид, и дата сет. Сохряняй свойства при инициализации/деинициализации фрейма.


YuRock   (2003-12-18 14:23:00) [14]

Плохиш_(18.12.03 14:09) -

"Ты, это," вначале пойми, что спрашивают (если сможешь), а затем пытайся кого-то учить.


alexEagle   (2003-12-18 14:21:00) [15]

MV -> Сохранять я и без тебя знаю как, но вот не знаю где. Смотри [17]


MV   (2003-12-18 14:18:00) [16]

Что, длинный пример, что ли? Или просто тема очень горячая?


alexEagle   (2003-12-18 14:16:00) [17]

В последней своей фразе я случайно написал слово форма вместо таблица. Прошу простить. Случайно.


Vlad   (2003-12-18 14:13:00) [18]


> alexEagle (18.12.03 14:00) [15]

Я конечно извиняюсь, но все-таки, параметры грида нужно считывать/записывать только в момент открытия/закрытия DataSet (тогда непонятна твоя фраза - Датасет вообще не причем) ?
Если так, то кто сделай проще
Есть форма, на которой твой грид находится. На FormCreate напиши следующие строчки:
DBGrid.DataSource.DateSet.BeforeOpen: = MyProc1;
DBGrid.DataSource.DateSet.AfterClose: = MyProc2;

В процедурах MyProc1, MyProc2 и делай считывание/запись параметров.
Тогда при активации/деактивации любого набораданных, подключенного к твоему гриду у тебя будет считывание/сохранение свойств.


alexEagle   (2003-12-18 14:10:00) [19]

Я хочу сделать акцент на том что мне АБСОЛЮТНО НЕ ИНТЕРЕСЕН метод сохранения информации по колонкам. Мне интересно знать ГДЕ ИМЕННО В КЛАССЕ TDBGrid прописать загрузку/восстановление информации. Причем конструкторы/деструкторы тут тоже не причем, поскольку саму таблицу я открываю в момент времени отличный от 1) активации формы 2) создания грида и т.д. Вобщем когда хочу - тогда и открываю. И хочу знать, в каком методе грид реагирует на открытие/закрытие формы.

С уважением, Александр.


Плохиш_   (2003-12-18 14:09:00) [20]

>alexEagle (18.12.03 14:00) [15]

Ты, это, успокойся-ка.
Тебе в [1] уже ответили, а если не понял, то иди займись изучением основ.


Страницы:   1 2

Наверх

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