Форум: "Базы";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];
ВнизНаследник 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c