Форум: "Основная";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];
ВнизКак получить текст окна класса TRichView? Найти похожие ветки
← →
Deltas © (2008-08-30 04:49) [0]Здравствуйте, уважаемые мастера Delphi. Мне необходимо прочитать текст окна класса TRichView в чужой программе. Каким образом это можно сделать, не активируя это окно? Может быть кто-то уже сталкивался с подобной проблемой?...
← →
KilkennyCat © (2008-08-30 12:23) [1]
> не активируя это окно
что в данном случае понимается под активацией?
← →
Юрий Зотов © (2008-08-30 13:05) [2]WM_GETTEXT ?
← →
{RASkov} © (2008-08-30 13:17) [3]http://delphimaster.net/view/4-1219747063/
> [0] Deltas © (30.08.08 04:49)
Может задачу в целом нарисуешь... например, зачем из чужого окна текст нужен?
Может есть другие варианты решения вопроса...
← →
KilkennyCat © (2008-08-30 13:29) [4]
> Юрий Зотов © (30.08.08 13:05) [2]
даже если окна нет вообще?
← →
Deltas © (2008-08-30 14:28) [5]
> что в данном случае понимается под активацией?
Под активацией понимается тот момент, когда окно получает фокус ввода.
Тогда задачу можно было бы решить с помощью функции keybd_event: выделить весь текст (Ctrl+A) и скопировать в буфер обмена (Ctrl+C).
> WM_GETTEXT ?
К сожалению, WM_GETTEXT получает текст заголовка окна, и для TRichView вовзвращает пустую строку. Стандартное EM_STREAMOUT для TRichEdit не поддерживается классом TRichView.
> Может задачу в целом нарисуешь... например, зачем из чужого
> окна текст нужен?
> Может есть другие варианты решения вопроса...
Задача следующая. В программе-чате использован TRichView. У меня клиентская версия чата. В окне класса TRichView отображается разговор всех пользователей чата. Мне необходимо анализировать постоянно обновляющийся текст в этом окне.
> даже если окна нет вообще?
В данном случае, окно есть, просто может быть неактивным.
← →
Юрий Зотов © (2008-08-30 14:42) [6]The EM_GETTEXTEX message allows you to get all of the text from the rich edit control in any particular code base you want.
(c) MSDN
← →
Deltas © (2008-08-30 15:18) [7]
> Юрий Зотов © (30.08.08 14:42) [6]
Проверил. Сообщение EM_GETTEXTEX также не поддерживается классом TRichView.
← →
Юрий Зотов © (2008-08-30 15:30) [8]> Deltas © (30.08.08 15:18) [7]
А какой класс ОКНА имеет TRichView? Это можно выяснить любой программой типа WinSpy (или посмотреть по исходникам).
Если класс окна будет известен, то все остальное можно найти в MSDN.
← →
Deltas © (2008-08-30 16:05) [9]Класс окна называется TRichView. Я же написал это в вопросе...
> Мне необходимо прочитать текст окна класса TRichView в чужой
> программе.
← →
Deltas © (2008-08-30 16:12) [10]Может ли здесь скрываться истина в том, что в модуле RichEdit сообщения описаны следующим образом:
EM_STREAMOUT = WM_USER + 74;
EM_GETTEXTEX = WM_USER + 94;
?
The RegisterWindowMessage function is typically used to register messages for communicating between two cooperating applications.
(c) MSDN
← →
Юрий Зотов © (2008-08-30 21:02) [11]> Deltas © (30.08.08 16:05) [9]
Это Дельфийский класс, а нужен системный класс Windows. См. Subclassing.
← →
Deltas © (2008-08-30 21:22) [12]
> А какой класс ОКНА имеет TRichView? Это можно выяснить любой
> программой типа WinSpy (или посмотреть по исходникам).
Посмотреть исходники не представляется возможным, потому что данный компонент можно скачать и установить только в уже откомпилированных модулях (*.dcu). А куда мне нужно смотреть в WinSpy? Я пользуюсь входящей в пакет утилит Delphi программой WinSight32. Класс окна называется TRichView. Про subclassing глянул, цитирую "...The window class (which is similar to the objects or classes in object-oriented programming) contains information...". Или Вы имеете в виду некий родительский базовый класс класса TRichView?
← →
Юрий Зотов © (2008-08-31 07:34) [13]Имеется в виду "родной" системный класс окна. Дельфийский класс окна совпадает с классом объекта, но в его основе все равно лежит тот самый системный класс. Например, компонент TListBox создает окно класса TListBox, но порождено оно от системного класса ListBox.
Утилиты типа WinSpy умеют этот системный класс показывать. Например, Spy & Capture показывает его на закладке Styles в окошке Subclassed From.
← →
Юрий Зотов © (2008-08-31 07:41) [14]Кстати, откуда вообще взялся TRichView, что за компонент такой? В D5 его нет, насколько помню.
← →
Deltas © (2008-08-31 13:59) [15]
> Кстати, откуда вообще взялся TRichView, что за компонент
> такой?
TRichView — это пакет компонентов для Borland Delphi и C++Builder, позволяющих просматривать, редактировать и распечатывать форматированные гипертекстовые документы.
В стандартную потавку Delphi он не входит, распространяется как отдельный продукт. Использован во многих приложениях.
http://www.trichview.ru/
> Юрий Зотов © (31.08.08 07:34) [13]
Спасибо, теперь знаю, в каком направлении работать.
← →
svt (2008-09-17 23:11) [16]TRichView поддерживает EM_GETTEXTRANGE.
Правда, зависит от версии TRichView и с какими директивами компилятора скомпилирована программа
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.033 c