| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > проблема со вставкой текста из буфера |
| Автор: BLACK_KOT 15.1.2011, 02:47 | ||
если в тексте находим строку, начинающуюся с нужной буквы- копируем в буфер и вставляем где сейчас курсор. беда в том, вставляется только последняя строка в которой встречалось удовлетворяющее условие, но вставляется она ровно столько, сколько раз встречалось удовлетворяющее условие. например если в файле такие строки: текст ааа прочаяабракадабра текст ббб прочаяабракадабра текст ввв то вставится "ввв ввв ввв" насколько я понял вставка просто не успевает скопироваться и ввестись, как цикл уже пробежал и в буфер попало последнее удовлетворяющее условие. хотя я сам не до конца понимаю. подскажите, как избавиться от такого эфекта? |
| Автор: Poseidon 17.1.2011, 01:25 |
| А потому что надо сначало "собрать" весь текст в переменной, а потом уже скопировать все в буфер за один раз. |
| Автор: BLACK_KOT 22.1.2011, 18:52 |
| собрать то не проблема. а как выводить нужный текст из буфера? допустим алгоритм вычленил слова ааа, бббб, вв. в буфер скопировалось аааббббвв. как мне достать бббб? или надо запоминать количество букв в слове? |
| Автор: BLACK_KOT 23.1.2011, 02:28 |
| я ж говорю- алгоритм находит строчку - копирует в буфер и вставляет где сейчас курсор. беда в том, что вместо первой строки, второй и третей вставляется во всех случаях третья строка. например распознание такого кода приведённым выше аглоритмом будет следущее: клик 100 200 //эмулируется клик мышкой в точке с этими координатами. текст Т1 // в буфер копируется "Т1",эмуляция нажатия контрл+V (должен вставляться Т1, а вставляется Т3) клик 200 300 // эмулируется клик мышкой в точке с этими координатами. текст Т2 // в буфер копируется "Т2",эмуляция нажатия контрл+V (должен вставляться Т2, а вставляется Т3) клик 300 400 // эмулируется клик мышкой в точке с этими координатами. текст Т3 // в буфер копируется "Т3",эмуляция нажатия контрл+V (должен вставляться Т3, он и вставляется) |
| Автор: northener 23.1.2011, 03:23 | ||
Пожалуйста без пошлостей! А где сам алгоритм? Есть код явно "содранный" откуда-то. Нам что нужно его "довести до ума"? |
| Автор: BLACK_KOT 23.1.2011, 12:19 | ||
если б алгоритм был содран - он хотябы работал.
|
| Автор: Poseidon 23.1.2011, 14:15 | ||
| BLACK_KOT, ты меня удивляешь. Уже ж не первый год с Дельфи знаком. Вот твой первый пример, работающий. Проверял на D XE
запихнул в таймер, что бы было время переключится на другое окно и поставить куда-нить курсор. Кстати, чем обусловлено использование "левой" SetClipboardText, если можно все стандартно сделать? |
| Автор: BLACK_KOT 26.1.2011, 21:47 |
| спасибо, Poseidon, с VCL действительно работает. беда в том что я пишу на winapi, потому и использую "левые" функции, которые меня и подводят. |