Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Послать сообщение из своей программе в чужую 
:(
    Опции темы
Toska
Дата 2.10.2007, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Как мне из своей программы послать сообщение другой программе на класс компонета TRichViewEdit? 
А так же как считать от туда данные?

Нужно имено TRichViewEdit
PM MAIL   Вверх
Alexeis
Дата 2.10.2007, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Цитата(Toska @  2.10.2007,  21:28 Найти цитируемый пост)
Как мне из своей программы послать сообщение другой программе

  При помощи функций SendMessage, PostMessage. 

Цитата(Toska @  2.10.2007,  21:28 Найти цитируемый пост)
на класс компонета TRichViewEdit? 

  Винда не посылает значения классам, она посылает сообщения окнам.

Отсюда вывод. Нужно послать сообщение окну TRichViewEdit при помощи функций SendMessage/PostMessage. 

Цитата(Toska @  2.10.2007,  21:28 Найти цитируемый пост)
А так же как считать от туда данные?

  Смотря какие данные. Можно получить только те что предусмотрены окном данного типа (класса в смысле класса окон Windows)


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Toska
Дата 2.10.2007, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



У меня есть такая функция

Код

function ChangeWndFirstEditText(Wnd: HWND; const Text: string):
  boolean;
var
  EditWnd: HWND;
begin
  Result := False;
  EditWnd := FindWindowEx(Wnd,0,'TRichViewEdit', nil);
  if EditWnd = 0 then
    exit; // edit not found
 Result := SendMessage(EditWnd, WM_SETTEXT, 0, Integer(PChar(Text))) <> 0;
end;


Я использую SendMessage сообщение отправляется, но не отображается в окне TRichViewEdit.
Если посмотреть всякими шпионами окон, то текст есть, хотя его там нет, абсурд.

То что TRichViewEdit не стандартный компонет с этим не связана?

PM MAIL   Вверх
Alexeis
Дата 2.10.2007, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Цитата(Toska @  2.10.2007,  23:23 Найти цитируемый пост)
То что TRichViewEdit не стандартный компонет с этим не связана?

  Скорее всего так. WM_SETTEXT принимает любое окно, но отображать его или нет зависит от реализации.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
BaD_SeCt0R
Дата 2.10.2007, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 3
Всего: 18



Цитата(Toska @  2.10.2007,  23:23 Найти цитируемый пост)
То что TRichViewEdit не стандартный компонет с этим не связана?

А причем здесь компоненты? Тут либо эдит, либо его собрат рич. А уж если окошко не отвечает на сообщение - такова воля программистов.


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
Toska
Дата 3.10.2007, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Меня еще вот какой штукой кнули

В какой версии Delphi пишется проект? с офсайта: Processing of WM_GETTEXT, WM_GETTEXTLENGTH, WM_SETTEXT was disabled for Delphi 2005 and 2006, because it conflicted with VCL implementation.

Я пишу 2006.

Есть какая нибудт замена этому
PM MAIL   Вверх
BaD_SeCt0R
Дата 3.10.2007, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 3
Всего: 18



Toska, хде ты это взяла??? Кто WinAPI отменил??? smile

Добавлено через 1 минуту и 4 секунды
PS у меня все всегда работало. Байки.


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
Toska
Дата 3.10.2007, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



BaD_SeCt0R,  Для начала ВЗЯЛ  smile  


Я тоже думаю что фигня, я же могу послать в Edit, простой TRichEdit и т.д.

Сообственно подскажи как решить мою задачу 
PM MAIL   Вверх
Alexeis
Дата 3.10.2007, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Проверка показала что в Delphi 2007 WM_SETTEXT устанавливает свойство Caption, но не сразу, а только после пересоздания окна.

Добавлено через 48 секунд
Но скорее всего Caption не отображается у TRichViewEdit ни где.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
BaD_SeCt0R
Дата 3.10.2007, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 3
Всего: 18



Цитата(Toska @  3.10.2007,  00:40 Найти цитируемый пост)
BaD_SeCt0R,  Для начала ВЗЯЛ

Экскьюз, у тя пол не указан smile
Toska, кинь ссылкой чтоли. Я ничего подобного на офсайте не увидел.

Добавлено через 6 минут и 46 секунд
Цитата(Alexeis @  3.10.2007,  00:43 Найти цитируемый пост)
Проверка показала что в Delphi 2007 WM_SETTEXT устанавливает свойство Caption


Alexeis, ты где у эдитов кэпшин видел? И не после пересоздания, а после инвалидэйта вродь как. Не буду утверждать, у самого стоит D7.

Это сообщение отредактировал(а) BaD_SeCt0R - 3.10.2007, 01:24


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
Alexeis
Дата 3.10.2007, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



BaD_SeCt0R, Caption есть еще у предка всех контролов TControl, просто оно не published.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
RA
Дата 3.10.2007, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 7
Всего: 115




Цитата(Toska @  2.10.2007,  23:23 Найти цитируемый пост)
Я использую SendMessage сообщение отправляется, но не отображается в окне TRichViewEdit.
Если посмотреть всякими шпионами окон, то текст есть, хотя его там нет, абсурд.

То что TRichViewEdit не стандартный компонет с этим не связана?



А как же RichViewEdit1.Format;  после принятия текста?
PM   Вверх
EvilsInterrupt
Дата 3.10.2007, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 1
Всего: 9



PM MAIL WWW ICQ Jabber   Вверх
Toska
Дата 11.10.2007, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Попробуйте создать форму с TRichViewEdit'ом и отправить туда свое сообщение.

У меня ни как не получается, думаю нужен какой то другой подход, нежеле SendMessage.

Помогите разобраться

PM MAIL   Вверх
Toska
Дата 12.10.2007, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Более и менее разобрался, для передачи использую буфер обмена.
SendMessage(EditWnd, WM_Paste, 0, Integer(PChar(Text))) <> 0;

Может теперь кто подскажет как считать информацию с TRichEdit smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0593 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.