Вопрос № 140721: Добрый день, эксперты. Подскажите, пожалуйста, как получить данные из чужого StringGrid'a, конкретно из его ячеек, т.е. StringGrid находится в чужом запущенном приложении, Handle его я нахожу, и всё <img src="/images/Forum/72.gif" border="0">...
Вопрос № 140.721
Добрый день, эксперты. Подскажите, пожалуйста, как получить данные из чужого StringGrid'a, конкретно из его ячеек, т.е. StringGrid находится в чужом запущенном приложении, Handle его я нахожу, и всё :( Как вытягивать данные из Edita, чужого, впринципе, знаю, а вот с эти возникла проблема. Спасибо.
Отвечает: Denisss Здравствуйте, Семенов Андрей Викторович!
Принцип "вытягивания" данных из полей ввода (TEdit) приблизительно такой:
1. Вы получаете идентификатор (HWND) нужного поля ввода. 2. Отправляете этому полю сообщение WM_GETTEXT (либо напрямую, используя функцию SendMessage, либо с помощью функции GetWindowText, либо используете какую-то другую функцию). 3. Edit получает сообщение WM_GETTEXT
и выдает соответствующий текст (кстати говоря, Вы можете создать собственный Edit со своим обработчиком сообщения WM_GETTEXT и будете выдавать любой текст, который Вам вздумается).
К сожалению, если Вы просмотрите реализацию класса TStringGrid (в файле [Delphi]SourceVclGrids.pas), то увидите, что никаких дополнительных обработчиков сообщений в нем нет. Обработчик сообщения WM_GETTEXT унаследован классом TStringGrid от класса TControl. Т.е. Вам либо
придется создавать собственный компонент, унаследованный от TStringGrid, обрабатывающий пользовательские сообщения (см. WM_USER), либо программа, содержащая StringGrid, должна передавать каким-либо образом данные из него второй программе (можно опять же с помощью пользовательских сообщений, например).
Успехов! --------- Все должно быть сделано настолько просто, насколько это возможно. Но не проще. (с) А.Эйнштейн
Ответ отправил: Denisss (статус: Профессор) Россия, Москва ICQ: 281599577 ---- Ответ отправлен: 27.07.2008, 12:30 Оценка за ответ: 4 Комментарий оценки: Спасибо за ответ конечно. Но видно я совсем безнадежен потому как все равно не совссем понял, как можно подоставать данные из чужого приложения из StringGrida т.е. я так понял что реализовать поячеичное изъятие информации из чужого StringGrida нереализуемо :(