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

Вниз

Наследник DBGrid   Найти похожие ветки 

 
dimis   (2002-12-09 16:17) [0]

Встала задача написать наследника DBGrid
Проблема такая. мне нужно отловить событие когда связанный с DBGrid DataSet открылся или наоборот закрылся.
в стандартном тогого события нет. Как это осуществить?


 
Сергєєв Володимир   (2002-12-09 16:43) [1]

А ты подойди к задаче с другой стороны.
Нафиг тебе наследник DBGrid ? Че то реализовать нестандартное(в смысле нестандартное Делфячье )хочется ? А ты посмотри, может уже кто-то написал это и тебе достаточно взять готовый исходник ?

Я, например, давно уже юзаю библиотеку Большакова EhLib(DBGridEh, DBPrintGridEh и др.). Непомню точно адрес, в конференциях за вчерашний день посмотри, где-то в форуме я его видел. От себя лично скажу - Грид на все случаи жизни. Наверное и автор сам не знает всех областей, куда его можно воткнуть.

Единственное что, при всем моем уважении к Дмитрию, я его считаю глупым человеком. За такой компонент бабло надо брать немеренное, а он - открытый исходник дает. У буржуев бы поучился. Какая-то долбанутая библиотека (не будем называть имена), которая конфликтует с версиями делфей через одну и не реализует половины того, что есть у Большакова - 99 у(битых) е(нотов) стоит.


 
dimis   (2002-12-09 17:07) [2]

я тоже использую этот компонент
мне всеравно от чего делать наследника(хотя EhLib конфликтует иногда со стандартными компонентами)
вопрос в том чтобы отловить мненно то событие о котором я спрашивал.

> От себя лично скажу - Грид на все случаи жизни

не на все , тоже пришлось модифицировать
Например событие ColWidthsChanged есть, о столбца в параметрах нет.
Только давай не будем переходить на обсуждение компоненнта. Правда если ты знаешь как реализовать мою проблему на DBGridEh - я буду счастлив


 
asmith   (2002-12-09 17:35) [3]

DBGrid тут ни при чем. А что касантся DataSet, то для этого класса существуют события BeforeOpen, BeforeClose и другие. ИМНО это тебе и нужно. И вообще сам подход не правильный - нужно реагировать на поведение программного слоя, отвечающего за доставку данных, а делается попытка ловить это на презентационном уровне. Каждый должен замиматься своим делом.


 
dimis   (2002-12-09 17:52) [4]


> делается попытка ловить это на презентационном уровне

это я знаю
если не получается ответить мне на вопрос в такой интерпретации -попробую объяснить вормулировку задачи
есть DBGrid в нем отражаются данные. Пользователь хочет их редактировать напрямую - без отдельной формы.
Проблема в том что все изменения должны происходить через хранимые процедуры и курсор в общем случае нередактируемый.
Проблему можно решить используя TClientDataSet,но надо его запихнуть в DBGrid и при обновлении основного курсора переоткрывать его. Что делать?


 
VAleksey ©   (2002-12-09 18:20) [5]

Что-то ты морочишся однако. :)) Заработался наверное.


 
Cheshit ©   (2002-12-13 18:57) [6]

Подобную проблему решил используя CashedUpdates и фальшивый UpdateSQL. Тогда событие mросто не понадобилось и все перехватываю на Post и идет на процедуру


 
Anatoly Podgoretsky ©   (2002-12-13 19:14) [7]

Сам DBGrid не имет данных и не открывает наборы данных, это делает ассоциированный с ним набор, вот у этого набора есть 4 собыия на открыти и на закрытие, до и после, если теб очень нужно, то ты должен назначить именно им свои обработчики, доступ до набора делается через свойство DataSource.DataSet но проблема у тебя перевернута с головы на ноги.
TClientDataSet является наследником TDataSet, так что все эти события у него есть, плюч еще свои специфичные



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

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

Наверх




Память: 0.48 MB
Время: 0.011 c
14-15268
Anatoly Podgoretsky
2002-12-13 23:43
2003.01.06
Именинники 14 декабря


14-15237
Виктор Щербаков
2002-12-15 15:02
2003.01.06
Обеденный перерыв


1-15127
Programist21
2002-12-22 13:30
2003.01.06
Текст или HTML-код из IE


7-15334
Xman
2002-10-28 15:44
2003.01.06
Как можно опредилит ОС


1-15078
Napoleonn
2002-12-21 19:01
2003.01.06
Как в richedite