| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > "Универсальный" способ для работы с БуферОбмена. |
| Автор: Hatigatsu 13.12.2006, 20:23 | ||
| Здравствуйте. Опять я побеспокою Умных людей своими глупыми вопросами (одним). Подскажите как правильно работать с Буфер Обмена. Спрочитал пару статей, работают, но они не универсальны. К примеру для копирования из ComboBox я использую:
А если их два или более то уже фигня получается. Или, если есть DBMemo1, как из него скопировать выделенный текст или вставить в него из Буфера текст. Или как из ячеек DBGrid1 скопировать текст в Буфер по нажатию на кнопку. В общем есть ли универсальный способ для копирования выделенного текста из компонент, условно говоря, работающие с текстом. Заранее БлагоДарю. |
| Автор: Sunvas 13.12.2006, 21:43 | ||
Не? |
| Автор: Hatigatsu 14.12.2006, 01:48 | ||
| Sunvas, Ты Гений. Выручил. Только somecontrol.Handle не проходит при компиляции я его заменил на ActiveControl.Handle, не знаю в чём разница, но работает. А не работало в таком контексте программы:
Ну это мелочи. Я в общем Очень Рад. |
| Автор: skyboy 14.12.2006, 17:11 | ||
| Hatigatsu, во-первых - somecontrol это просто переменная для примера. Естественно, что, коль ты такую переменную не создавал, компилятор её не знает и ругается. во-вторых, необязательно проверять ActiveControl на предмет отношения к классу TComboBox. Вполне можно копировать из любого контрола, который поддерживает редактирование(точнее - обрабатывает WM_COPY, но это почти одно и тоже - например, TListBox никак не реагирует на это сообщение, так же, как и TComboBox в режиме style=='dropdownlist'). Потому можешь выбросить проверку и копировать из любого контрола, который этого захочет. Пример(набросай кучу лювых контролов на форму):
Однако, при копировании надо предвариетельно выделять копируемых текст. Да и с "не-редактируемыми" контроами так не поступишь. Если это напрягает, можно использовать сообщение WM_GETTEXT - оно даже кнопками обрабатывается. И ListBox'ами - тоже. Если че непонятно - спрашивай Удачи в освоении буфера |