Форум: "Начинающим";
Текущий архив: 2009.05.31;
Скачать: [xml.tar.bz2];
ВнизTToolButton и Диспетчер драйверов ODBC Найти похожие ветки
← →
Kolan © (2009-04-16 17:15) [0]Есть кнопка тулбара со стилем
tbsDropDown
; в инспекторе объектов к кнопке привязаноSavePopupMenu
. В меню просто два пункта к которым привязаны экшены. Все просто. Вроде...
При нажатии на треугольничек на кнопке по которому должно выпасть меню происходит исключение[Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
Причем тут это? И где поставить в VCL точку останова, чтобы отладиться?
← →
Игорь Шевченко © (2009-04-16 17:19) [1]
> Причем тут это?
у тебя ошибка в программе
← →
Kolan © (2009-04-16 17:26) [2]
> у тебя ошибка в программе
Дык я знаю, откуда начинать искать?
← →
clickmaker © (2009-04-16 17:30) [3]так подробно расписан интерфейс, но ни слова про работу с БД
← →
Kolan © (2009-04-16 17:33) [4]Так нет в этой части её (работы с БД).
Нажал на выпадающее меню — выпало меню. Вот и все что я хочу. А получается: Нажал на выпадающее меню — выпало Источник данных не найден...
← →
Игорь Шевченко © (2009-04-16 17:35) [5]
> Нажал на выпадающее меню — выпало Источник данных не найден.
> ..
не нажимай
← →
clickmaker © (2009-04-16 17:37) [6]> Нажал на выпадающее меню — выпало Источник данных не найден
значит где-то в событиях есть попытка обращения к ODBC
← →
Kolan © (2009-04-16 17:37) [7]Такс...
В программе естьApplicationEvents
. Поставил точку вApplicationEventsException
.
В стеке вот что:KFreGrafMainForm.TMainForm.ApplicationEventsException(???,$19F7AD0)
AppEvnts.TCustomApplicationEvents.DoException(???,???)
AppEvnts.TMultiCaster.DoException($F3C548,$19F7AD0)
Forms.TApplication.HandleException($F3C548)
Menus.TPopupList.MainWndProc(???)
Classes.StdWndProc(198606,279,7603841,0)
:7e368734 USER32.GetDC + 0x6d
:7e368816 ; C:\WINDOWS\system32\USER32.dll
:7e378ea0 ; C:\WINDOWS\system32\USER32.dll
:7e378eec ; C:\WINDOWS\system32\USER32.dll
:7c90e453 ntdll.KiUserCallbackDispatcher + 0x13
Menus.TPopupMenu.Popup(???,???)
Что значат вопросы в Popup?
← →
Kolan © (2009-04-16 17:40) [8]Кажется ошибка возникает при вызове
TrackPopupMenu
вTPopupMenu.Popup
.
Причем тут база...
← →
Игорь Шевченко © (2009-04-16 18:00) [9]
> В стеке вот что:
какой кошмар. тебе надо найти ошибку в программе
← →
clickmaker © (2009-04-17 11:05) [10]> Кажется ошибка возникает при вызове TrackPopupMenu в TPopupMenu.Popup.
>
>
> Причем тут база
за дурачков нас держишь? если это была попытка пошутить, то она не удалась
← →
Kolan © (2009-04-17 11:48) [11]Не, ей богу не шучу.
База в программе используется. SQL Server через ADO, но в той части где появляется ошибка база не используется и по выпадению этого меню из кнопки никакого моего коде не работает. Я сам в недоумении, понятно, что видимо где-то в другом месте что-то не так, а откуда начинать расследование — не понятно.
← →
clickmaker © (2009-04-17 11:50) [12]> и по выпадению этого меню из кнопки никакого моего коде
> не работает
OnUpdate у экшенов есть?
← →
Kolan © (2009-04-17 11:55) [13]Нет, нету. Интересно, что у меня две такие кнопки (открыть и сохранить) к ним привязаны разные меню. Ошибка возникает при нажатии на любую стрелочку.
Ради эксперимента добавил еще кнопку и меню, связал их. Тоже самое.
← →
Игорь Шевченко © (2009-04-17 12:24) [14]
> Ради эксперимента добавил еще кнопку и меню, связал их.
> Тоже самое.
значит тебе надо еще одну ошибку исправить
← →
Kolan © (2009-04-17 12:39) [15]Да где ж её искать то :"|? Я бы и рад исправить.
← →
clickmaker © (2009-04-17 12:49) [16]> База в программе используется. SQL Server через ADO, но
> в той части где появляется ошибка база не используется
значит таки используется
← →
Kolan © (2009-04-17 13:02) [17]Добавляю кнопку на тул бар. Кидаю Поп меню. Связываю. Запускаю, нажимаю на треугольник — ошибка. Где тут могла проскочить база?
← →
clickmaker © (2009-04-17 13:04) [18]> Где тут могла проскочить база?
вроде, неглупый человек... ну откуда тут могут знать, где у тебя там могла проскочить база?
← →
Kolan © (2009-04-17 14:14) [19]clickmaker, не знаю окуда вы это знаете... Я вот OnUpdate не догадался проверить...
Нашел причину. Сюда по сообщению база была таки причем, поэтому решил проверить её. Благо у меня есть фасад к базе, так что я поставил точки на все публичные методы фасада.
И оказалось, что один из них действительно вызывается при выпадении меню.
Надо сказать, что в программе есть два режима (режим определяется по параметру в командной строке) с базой и без базы. В режиме с базой показывается закладка с гридом и т. д. в режиме без базы закладка срывается. Игрался я с тем что без базы.
Так вот, на той закладке где грид (которая мне была не видна) есть Попап меню, к которому подключен Экшен, у которого в OnUpdate есть обращение к базе (для каждой сроки проверяет есть ли спец. данные и позволяет их открыть из контекстного меню).
И вот в чем соль. При нажатии на тот самый треугольничек на кнопке тул бара (которая, напомню, находится не на закладке с гридом, а в другом месте) вызывался OnUpdate того экшена, который находился на другой закладке (для работы с базой), а так как я использовал режим без базы и подключение было не настроено, появлялась сабжевая ошибка.
Вопрос, как это так получается? Почему вызывается другой апдейт? И как это лечить?
← →
clickmaker © (2009-04-17 14:22) [20]> Почему вызывается другой апдейт?
OnUpdate вызывается в момент ухода приложения в состояние простоя (idle), когда нет необработанных сообщений в очереди.
ну и такое состояние возникает в том числе после вызова меню
← →
Игорь Шевченко © (2009-04-17 14:35) [21]
> Благо у меня есть фасад к базе
фасад без забора - впустую потраченное время
> И как это лечить?
программу переделывать
← →
Kolan © (2009-04-17 14:36) [22]clickmaker, да, точно, перечитал справку...
На той закладке, что для базы, все лежит на фрейме, а фрейм создается динамически. Если не создавать фейм, то и OnUpdate вызываться видимо не будет. Нормальное решение?
← →
Kolan © (2009-04-17 14:36) [23]
> программу переделывать
Ну, только не всю, или всю, но не сразу, слишком большая :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.05.31;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.005 c