Yount_0701 Ответов: 1

Как использовать C/C++ доступ к tdbgrid (delphi VCL controls)


Существует целевая программа, написанная delphi/pascal, приложение имеет элемент управления VCL TDBGrid, этот вид управления очень похож на стандартный список win32.

Я пытаюсь написать некоторый код для доступа к информации из элемента управления TDBGrid. включая информацию о столбцах , элементы строк. использование c/c++.

Что я уже пробовал:

Я использую Enumwindows/EnumChildWindows, чтобы найти приложение и элемент управления TDBGrid. Я не знаю, как получить доступ к управляющей информации TDBGrid ( информация о столбце и элементы строки)

1 Ответов

Рейтинг:
0

Jochen Arndt

Перечисляя окна, вы получаете HWND о контроле. Этот HWND может использоваться для отправки сообщений в окно.

Если вы сможете получить необходимую информацию, это зависит от того, как будет реализован элемент управления TDBGrid. Если он использует внутренние частные (определяемые пользователем) коды сообщений и вы знаете их и структуру параметров, вы можете использовать их для получения информации.

Но если элемент управления использует функции вместо сообщений Windows, вы не сможете получить информацию.

Если у вас есть исходный код элемента управления, вы должны быть в состоянии проверить это. Это может быть также частью документации.


Yount_0701

Я понимаю, что вы здесь сказали.Стандартное приложение win32 зависит от цикла сообщений Windows.Платформа windows управляется сообщением windows.Я использую spy++, чтобы следить за нормальной работой этого элемента управления TDBGrid, сообщения не являются стандартными сообщениями WM_ , все они принадлежат к самостоятельным сообщениям.
повторное получение информации об элементе управления означает просмотр исходного кода реализации(по Паскалю),а не выбор
есть ли другой способ ?

Jochen Arndt

Если у вас нет источника, но вы знаете, что используются сообщения, Вы можете написать управляющее приложение и использовать Spy++ для перехвата сообщений. Тогда вы должны быть в состоянии декодировать коды сообщений и, надеюсь, также значения lParam и wParam.