Постоянные сообщения для получения информации из Delphi TcxGrid с помощью API SendMessage - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь манипулировать TcxGrid в приложении, разработанном в Delphi, используя AutoIt.
AutoIt имеет много пользовательских библиотек, но любая из них связана с TcxGrid, поскольку этот объект не является стандартным Windows объектом , Я мог бы использовать любой другой IDE или язык программирования (C#, C ++, даже Delphi), но я застряну в той же проблеме: как получить информацию из этого элемента управления?
В основном для связи с другими процессами, которые мы используйте:

LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)

Но реальная проблема заключается в том, как узнать постоянные сообщения, используемые в Delphi объектах.
Кто-нибудь знает, где найти константы, используемые для связи с объектом TcxGrid? Я уже рассмотрел создание al oop и увеличение значения сообщения и его тестирование по одному, но это займет много времени.

Другие похожие запросы: Windows документация для SendMessage:
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendmessage
Windows документация для ComboBox (только в качестве примера):
https://docs.microsoft.com/en-us/windows/win32/controls/bumper-combobox-control-reference-messages
Аналогичное сомнение 1:
Доступ к элементам управления TcxGrid из Delphi приложения из c# с использованием WinAPI
Аналогичное сомнение 2:
Получение счетчиков и элементов ComboBox с помощью SendMessage API

1 Ответ

0 голосов
/ 01 апреля 2020
  1. Только доступ к исходным кодам покажет полный список использованных сообщений. Любые старые версии также будут хорошим решением.

  2. Все Delphi TWinControl компоненты-потомки поддерживают стандартные Windows сообщения, такие как WM_* (например, WM_CHAR, WM_LBUTTONUP et c). Delphi также использует специальные сообщения CM_*. Список сообщений доступен в источнике Delphi. Основными модулями являются Winapi.Messages и Vcl.Controls.

Сторонние разработчики редко добавляют свои сообщения. Обычно это не требуется для обмена данными на языке Delphi.

Сложный способ - отслеживать все сообщения, отправляемые окном при работе. Используйте функцию SetWindowsHookEx с параметрами WH_GETMESSAGE, WH_CALLWNDPROC. Помните о значениях LPARAM и WPARAM. Они также содержат важную информацию.

Добавление: в сетках обычно используются встроенные компоненты (EDIT, COMBOBOX et c) для ввода информации. Когда они видны, вы также можете отправлять им сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...