Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.57 MB
Время: 0.036 c
1-14986
Anton Tsvilikh
2002-12-23 21:41
2003.01.06
Вид кнопки вверху окна


14-15276
GROL
2002-12-15 23:09
2003.01.06
Delphi 7 - XP/2


1-15023
jen_bond
2002-12-23 08:19
2003.01.06
Срочно нужен совет!


1-15020
werr
2002-12-24 14:34
2003.01.06
exe перезаписывает сам себя?


14-15249
race1
2002-12-10 07:59
2003.01.06
деньги





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский