C++Builder
Начало
Форум
Помощь
Войти
Регистрация
C++Builder
>
Forum
>
Вопросы программирования
>
Windows API
>
Как мышкой перетащить текст из одного текстового редактора в другой
Страниц: [
1
]
Вниз
Печать
Автор
Тема: Как мышкой перетащить текст из одного текстового редактора в другой (Прочитано 20442 раз)
Anton
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 7
Как мышкой перетащить текст из одного текстового редактора в другой
«
:
29 августа 2012, 05:41:42 »
Здравствуйте, хочу написать программу текст которой можно будет перетащить мышкой (не выделяя, просто из окна весь текст) в любой другой текстовый редактор, намекните пожалуйста как это сделать???
Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг
Сказали спасибо: +350/-28
Offline
Сообщений: 2181
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #1 :
29 августа 2012, 05:43:26 »
Это возможно лишь в том случае, если "любой другой текстовый редактор" поддерживает Drag and Drop. Собственно, и копайте в этом направлении.
«
Последнее редактирование: 29 августа 2012, 08:04:57 от Tantos
»
Записан
Anton
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 7
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #2 :
29 августа 2012, 05:58:16 »
поддерживает по любому, мне бы только узнать какие компоненты в си бильдер использовать???
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2137
S0mbre
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #3 :
29 августа 2012, 07:16:24 »
Для внешнего D&D в другое приложение (стороннего разработчика) под виндой необходимо использовать COM интерфейс
IDataObject
, указатель на который передается в принимающее приложение.
Об этом:
1.
http://msdn.microsoft.com/en-us/library/windows/desktop/bb776905(v=VS.85).aspx
2.
http://blogs.msdn.com/b/oldnewthing/archive/2004/12/06/275659.aspx
Записан
Anton
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 7
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #4 :
29 августа 2012, 07:33:35 »
Цитата: S0mbre от 29 августа 2012, 07:16:24
Для внешнего D&D в другое приложение (стороннего разработчика) под виндой необходимо использовать COM интерфейс
IDataObject
, указатель на который передается в принимающее приложение.
дружище может набросаешь небольшой код для примера, а то чувствую я застряну в этих дебрях...
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2137
S0mbre
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #5 :
29 августа 2012, 09:55:21 »
Держи проект, дружище
Записан
Anton
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 7
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #6 :
29 августа 2012, 11:28:20 »
Цитата: S0mbre от 29 августа 2012, 09:55:21
Держи проект, дружище
Спасибо большое, уже хоть что то есть, сейчас думаю почему в Word не хочет перетаскивать... вообщем идея такая: есть компонент treeview в него будут заноситься текстовые строчки-шаблоны(предложения) нужно реализвать возможность прямо с этого дерева текстовых строк то есть выбрать мышкой любую стоку в дереве и перенести в любой текстовый редактор, например в блокнот....
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2137
S0mbre
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #7 :
29 августа 2012, 11:42:07 »
Цитата: Anton от 29 августа 2012, 11:28:20
... и перенести в любой текстовый редактор, например в блокнот....
В любой не получится - только в такой, который поддерживает работу с
IDataObject
. Это Word, WordPad, Notepad++ и так далее, т.е. более ли менее "современные" приложения. Блокнот не поддерживает. Для этого необходимо реализовать более сложный способ: мышиный хук и т.п., который будет работать с любыми приложениями.
Записан
Anton
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 7
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #8 :
29 августа 2012, 11:49:23 »
Цитата: S0mbre от 29 августа 2012, 11:42:07
Цитата: Anton от 29 августа 2012, 11:28:20
... и перенести в любой текстовый редактор, например в блокнот....
В любой не получится - только в такой, который поддерживает работу с
IDataObject
. Это Word, WordPad, Notepad++ и так далее, т.е. более ли менее "современные" приложения.
... да и так будет просто прекрасно, сколько сможешь напиши пожалуйста, буду очень благодарен.
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2137
S0mbre
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #9 :
31 августа 2012, 11:45:44 »
Цитата: Anton от 29 августа 2012, 11:49:23
... сколько сможешь напиши пожалуйста, буду очень благодарен.
Держи. Несколько коряво, но работает
По крайней мере, текст перетаскивает в любой контрол, поддерживающий операцию вставки (сообщение WM_PASTE).
PS.
В Ворд не вставляется таким способом. Это связано с тем, что сообщение вставки из буфера (WM_PASTE) не посылается напрямую в открытый документ, а в окно MS Word, которое это сообщение не обрабатывает так, как хотелось бы. Поэтому с Вордом работает предыдущий вариант (IDataObject).
Если вопросы будут - пиши, а еще лучше - почитай спец. литературу.
«
Последнее редактирование: 31 августа 2012, 11:54:38 от S0mbre
»
Записан
Anton
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 7
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #10 :
31 августа 2012, 14:00:43 »
а в каком редакторе открывается проект, что то CBuilder 6 не видит???
Цитата: S0mbre от 31 августа 2012, 11:45:44
Если вопросы будут - пиши, а еще лучше - почитай спец. литературу.
ни чего толкового в интернете найти не могу...
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2137
S0mbre
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #11 :
31 августа 2012, 16:01:15 »
Цитата: Anton от 31 августа 2012, 14:00:43
а в каком редакторе открывается проект, что то CBuilder 6 не видит???
Этот проект я делал в RAD Studio XE2. Открывается в версиях 2007+ (2007,2009,2010,XE,XE2). Поищи в инете конвертор *.cbproj -> *.bpr. Или самостоятельно создай форму, положи на нее мемо и статус-бар, и "далее по тексту": см. исходные файлы.
Записан
Anton
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 7
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #12 :
01 сентября 2012, 07:33:14 »
.... еще хотел бы узнать а как если 2 отдельных программы с деревьями то как узел одного дерева одной программы перетащить в другое дерево второй программы???
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2137
S0mbre
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #13 :
02 сентября 2012, 13:22:49 »
В зависимости от того, оба ли приложения твои собственные (т.е. ты сам можешь их перекомпилировать) или хотя бы одно из них - чужое (т.е. к исходному коду нет доступа).
В первом случае просто организуй drag-n-drop (см. книги по Билдеру вроде Архангельского, Сварта и т.п.) или используй технологии передачи данных клиент-сервер (об этом в интернетах и на форуме). Во втором случае (предполагая, что компонент-дерево, в которое надо вставить узел, образовано от стандартного виндового TreeView), можно попробовать посылать API сообщения, например
TVM_INSERTITEM
(сообщение возвращает дескриптор HTREEITEM нового узла).
Записан
allinandrey
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 19
Re: Как мышкой перетащить текст из одного текстового редактора в другой
«
Ответ #14 :
16 октября 2012, 05:21:09 »
Нельзя просто скопировать весть текст и вставить в другое окно а там стереть. API
Записан
Страниц: [
1
]
Вверх
Печать
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Вопросы программирования
-----------------------------
=> Общие вопросы программирования в C++Builder
=> Программирование с FMX
=> Работа с базами данных в C++Builder
=> Windows API
=> Технологии COM/DCOM, ActiveX
=> Аспекты и идеология профессиональной разработки ПО
=> Компьютерное железо и системное администрирование
=> студенческий городок
-----------------------------
Обсуждение материалов на сайте
-----------------------------
=> Обсуждений статей на сайте
=> Обсуждение материалов из файлового архива
=> Компоненты сторонних разработчиков к С++Builder
-----------------------------
Работа сайта и новости
-----------------------------
=> Ищу/предлагаю работу
=> Новости из мира программирования
=> Новости - события календаря
=> Голосования
=> Компьютерный юмор и приколы
=> Работа сайта
=> Флейм
-----------------------------
FAQ - частозадаваемые вопросы/ответы
-----------------------------
=> FAQ, общие вопросы, посвящённые C++Builder
=> FAQ, вопросы по базам данных
=> FAQ, вопросы по компонентам