|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.05.2011, 16:42 | #1 |
Сливочное масло
Участник клуба
Регистрация: 01.01.2011
Сообщений: 1,149
|
Из Clipboard пропадает(для RichEdit) текст
Если честно я не совсем уверен, что он туда попадает, но вроде как должен.
Дано: На форме компонент TRichEdit и есть массив TStringList. Есть кнопка и есть глобальная переменая Position которая определяет номер элемента массива. Это работает следующим образом: Юзер пишет в TRichEdit свои мысли. Надоело ему... Жмёт кнопку. - сохранение TRichEdit в массив как элемент с номером Position. - Очищаем РичЕдит. - Position + 1 - Загружаем в РичЕдит данные из массива по новому номеру. Юзер снова пишет свои мысли и т.д. Кароче юзер заполняет массив своими мыслями и может перемещаться по массиву благодаря процедуре управления передавая номер куда хочет перейти. Проблема: Если выделить в РичЕдите текст, нажать Ctrl+C и перейти к редактированию другого элемента массива, то вставить в РичЕдит уже не удаётся. В случае Ctrl+X всё работает как надо. Этот текст можно вставить кудаугодно, но только не в РичЕдит. Какие соображения? Вообщем запутано как-то получилось.
Сливочное масло Valio - компиляция как по маслу
|
15.05.2011, 16:45 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
У RichEdit есть такие методы:
Код:
|
15.05.2011, 17:01 | #3 |
Сливочное масло
Участник клуба
Регистрация: 01.01.2011
Сообщений: 1,149
|
Так дело в том что как раз PasteFromClipboard не отрабатывает.
Но если редактировать текст в пределах одного текста то все работает, при этом даже если перейти к другому тексту, то уже можно вставлять
Сливочное масло Valio - компиляция как по маслу
|
15.05.2011, 17:16 | #4 |
Сливочное масло
Участник клуба
Регистрация: 01.01.2011
Сообщений: 1,149
|
Ну вот я из своей программы сделал тестовый пример чтоб показать как это всё происходит.
Проделайте следующии манипуляции: 1. Запустить программу. 2. Выделить в RichEdit часть слова "Заготовка" и нажмите Ctrl+C. 3. Нажмите в "Лист операций" операцию "Технический контроль". 4. Теперь попытайтесь вставить в RichEdit. Ничего не получилось. 5. Попытайтесь теперь вставить в Edit который выше. Получается. 6. Аналогично можно встатвить куда угодно. Но только не в тот РичЕдит. Интересный момент: 1. Запустить программу. 2. Выделить в RichEdit часть слова "Заготовка" и нажмите Ctrl+C. Теперь в томже RichEdite нажмите Ctrl+V. Работает. 3. Нажмите в "Лист операций" операцию "Технический контроль". 4. Теперь попытайтесь вставить в RichEdit. Работает. PS: программа использует ГОСТовские шрифты. Если что, установите.
Сливочное масло Valio - компиляция как по маслу
Последний раз редактировалось Valio; 15.05.2011 в 17:20. |
15.05.2011, 17:48 | #5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Оно вставлет, но вставлят пустую строку. (Там реализация через SendMessage)
В любое другое приложение виндов вставляется норм. Чтобы исправить сделайте свою реализацию ctrl+x,ctrl+c,ctrl+v Попробуйте, обьект Clipboard (Модуль Clipbrd); Обьявление в var не нужно. посто Код:
Последний раз редактировалось Человек_Борща; 15.05.2011 в 17:51. |
15.05.2011, 19:34 | #6 |
Сливочное масло
Участник клуба
Регистрация: 01.01.2011
Сообщений: 1,149
|
Это реализовать то не проблема, хотелось бы узнать причину, чтоб с ней бороться целенаправленно. Бороться с следствием не очень грамотно.
Пока реализовано так, а дальше посмотрим. Код:
Сливочное масло Valio - компиляция как по маслу
Последний раз редактировалось Valio; 15.05.2011 в 19:42. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Clipboard - не отдаёт текст при неактивной форме | web surfer | Общие вопросы Delphi | 1 | 21.12.2009 19:46 |
Clipboard | [Qj] | Общие вопросы .NET | 1 | 21.08.2009 18:50 |
Как узнать был ли вставлен текст из ClipBoard? | Dux | Общие вопросы Delphi | 11 | 25.10.2008 18:03 |