"EhLib.Com" https://forum.ehlib.com/ru/ |
|
Как сделать событие OnAfterRowDetailPanelShow ? https://forum.ehlib.com/ru/viewtopic.php?f=4&t=3257 |
Страница 1 из 1 |
Автор: | t0xin [ 11 сен 2022, 16:10 ] |
Заголовок сообщения: | Как сделать событие OnAfterRowDetailPanelShow ? |
Приветствую, А можете показать как сделать наследника DBGridEh с событием OnAfterRowDetailPanelShow ? |
Автор: | EhLibSupport [ 06 окт 2022, 09:01 ] |
Заголовок сообщения: | Re: Как сделать событие OnAfterRowDetailPanelShow ? |
Добрый день. Наследованием, скорее всего, не получится. Только если модификацией в методе procedure TRowDetailPanelEh.SetVisible(const Value: Boolean); Новое события вставлять после метода FGrid.UpdateRowDetailPanel; |
Автор: | t0xin [ 06 окт 2022, 17:00 ] |
Заголовок сообщения: | Re: Как сделать событие OnAfterRowDetailPanelShow ? |
Спасибо за ответ, но не хотелось бы править исходники. А можете внедрить это событие в следующем релизе ? Поясню зачем это надо: в моём проекте панельке деталей присваивается родительство формы которая грузится из dll. Эта форма грузится каждый раз при открытии панели и освобождается после закрытия. А проблема в том что единственное событие открытия панели_деталей срабатывает слишком рано для того что бы можно было присвоить ей родительство формы из dll. Вот и приходится, либо с каждым релизом править исходники добавляя новое событие, либо после открытия панели деталей делать паузу, а затем грузить форму. |
Автор: | EhLibSupport [ 07 окт 2022, 08:03 ] |
Заголовок сообщения: | Re: Как сделать событие OnAfterRowDetailPanelShow ? |
Добрый день. Вы можете описать проблему так, чтобы еще можно было точно также воспроизвести и на тестовом проекте. Согласно нашим тестам, свойство DBGridEh1.RowDetailPanelControl.Handle уже доступно для запроса в событии OnRowDetailPanelShow Код: procedure TForm1.DBGridEh1RowDetailPanelShow(Sender: TCustomDBGridEh;
var CanShow: Boolean); var AHandle: HWND; begin AHandle := DBGridEh1.RowDetailPanelControl.Handle; if (AHandle <> 0) then ShowMessage('Ok'); end; |
Автор: | t0xin [ 08 окт 2022, 20:23 ] |
Заголовок сообщения: | Re: Как сделать событие OnAfterRowDetailPanelShow ? |
Вот навеял демку. Небольшое пояснение: DLL-ка с формой реализована немного не стандартно, и отображение этой dll-ки тоже немного не стандартное, это связанно с тем что в dll-ке используется SpreadSheet от DevExpress и там есть свои нюансы. Как бы то ни было Dll-ку прикладываю вместе с исходником. По поводу тестового проекта: сильно заморачиваться не стал, просто сделал максимально по быстрому, что бы было видно что к чему. Запускаете проект, раскрываете детали любой записи и вуаля пусто, потом если откроете другую запись форма отобразится. прикрепить файлы не смог тк > 256 kb, поэтому залил сюда https://www.upload.ee/files/14564613/test-db.rar.html https://www.upload.ee/files/14564615/DL ... t.rar.html |
Автор: | EhLibSupport [ 11 окт 2022, 08:25 ] |
Заголовок сообщения: | Re: Как сделать событие OnAfterRowDetailPanelShow ? |
Добрый день. А есть возможность скомпилировать проект если не установлены dx компоненты? |
Автор: | t0xin [ 28 окт 2022, 09:35 ] |
Заголовок сообщения: | Re: Как сделать событие OnAfterRowDetailPanelShow ? |
Добрый день, не было времени ответить. Я вас правильно понимаю, всё тоже самое но без DevExpress ? Если да то вот. Вложение: Напомню, что нестандартная загрузка формы из dll связанна с особеностями devexpress который в противном случаи работать не будет. и маленький фидосик Вложение:
|
Автор: | EhLibSupport [ 09 ноя 2022, 03:51 ] |
Заголовок сообщения: | Re: Как сделать событие OnAfterRowDetailPanelShow ? |
Добрый день. Напишите, пожалуйста, как надо донастраивать проекты client и dll чтобы они скомпилировались и запустились. Проект dll\DLLProject.dpr компилируется и формируется DLLProject.dll Проект client\Project1.dproj не компилируется т.к. не находит файлы SpreadSheetUnit, SpreadSheetUtilsUnit Эти файлы находится в другой папке - в папке dll. Надо прописывать пути из проекта Project1.dproj в проект dll\DLLProject.dpr? |
Страница 1 из 1 | Часовой пояс: UTC |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |