Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 26 ноя 2022, 22:18

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: 11 сен 2022, 16:10 
Не в сети

Зарегистрирован: 19 авг 2022, 06:35
Сообщений: 4
Приветствую,
А можете показать как сделать наследника DBGridEh с событием OnAfterRowDetailPanelShow ?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 окт 2022, 09:01 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1456
Добрый день.

Наследованием, скорее всего, не получится.
Только если модификацией в методе

procedure TRowDetailPanelEh.SetVisible(const Value: Boolean);

Новое события вставлять после метода
FGrid.UpdateRowDetailPanel;

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 окт 2022, 17:00 
Не в сети

Зарегистрирован: 19 авг 2022, 06:35
Сообщений: 4
Спасибо за ответ, но не хотелось бы править исходники.
А можете внедрить это событие в следующем релизе ?

Поясню зачем это надо: в моём проекте панельке деталей присваивается родительство формы которая грузится из dll.
Эта форма грузится каждый раз при открытии панели и освобождается после закрытия.
А проблема в том что единственное событие открытия панели_деталей срабатывает слишком рано для того что бы можно было
присвоить ей родительство формы из dll.

Вот и приходится, либо с каждым релизом править исходники добавляя новое событие, либо после открытия панели деталей делать паузу, а затем грузить форму.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 окт 2022, 08:03 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1456
Добрый день.

Вы можете описать проблему так, чтобы еще можно было точно также воспроизвести и на тестовом проекте.

Согласно нашим тестам, свойство 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;

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 окт 2022, 20:23 
Не в сети

Зарегистрирован: 19 авг 2022, 06:35
Сообщений: 4
Вот навеял демку.

Небольшое пояснение:

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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 11 окт 2022, 08:25 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1456
Добрый день.

А есть возможность скомпилировать проект если не установлены dx компоненты?

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 28 окт 2022, 09:35 
Не в сети

Зарегистрирован: 19 авг 2022, 06:35
Сообщений: 4
Добрый день, не было времени ответить.

Я вас правильно понимаю, всё тоже самое но без DevExpress ?
Если да то вот.
Вложение:
dll-test.rar [95.02 KiB]
Скачиваний: 6


Напомню, что нестандартная загрузка формы из dll связанна с особеностями devexpress который в противном случаи работать не будет.

и маленький фидосик
Вложение:
20221028_123242.rar [82.96 KiB]
Скачиваний: 5


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 09 ноя 2022, 03:51 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1456
Добрый день.

Напишите, пожалуйста, как надо донастраивать проекты client и dll чтобы они скомпилировались и запустились.
Проект dll\DLLProject.dpr компилируется и формируется DLLProject.dll
Проект client\Project1.dproj не компилируется т.к. не находит файлы SpreadSheetUnit, SpreadSheetUtilsUnit
Эти файлы находится в другой папке - в папке dll.
Надо прописывать пути из проекта Project1.dproj в проект dll\DLLProject.dpr?

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB