| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Запоминание содержимого буфера обмена |
| Автор: Superklug 22.6.2009, 00:05 |
| Доброго времени суток! В своей программе я работаю с буфером обмена... Получается так, что я могу "затереть" какие-то данные пользователя, которые он поместил в буфер. Соответственно мне необходимо каким-то образом сохранять, а затем восстанавливать содержимое буфера обмена. Т.е. примерно так: // запоминаем содержимое буфера ... // мои операции ... // восстанавливаем содержимое буфера Подскажите как это можно реализовать? |
| Автор: mrbrooks 22.6.2009, 08:13 |
TClipboard спасет отца русской демократии? |
| Автор: Superklug 23.6.2009, 00:10 |
На сколько я знаю с этим классом можно только как с указателем работать... Т.е. написать TClipboard cb = *Clipboard(); нельзя. Я пробовал перебрать и запомнить все форматы данных в буфере, а затем вернуть их на место.. Ничего не получилось. |
| Автор: mrbrooks 23.6.2009, 07:58 | ||||
это еще что такое? работать с TClipboard можно либо так:
либо так:
|
| Автор: Superklug 23.6.2009, 13:16 | ||
| Это только текст.. В буфере находится сразу много форматов... Мне их всех запомнить как-то надо. А потом вернуть в буфер. Я пробовал так:
Ничего не получается(( |
| Автор: Superklug 23.6.2009, 13:58 |
Не понимаю( |
| Автор: mrbrooks 23.6.2009, 14:15 | ||
чего же тут непонятного.
Честно говоря так никогда не изгалялся. Сейчас склоняюсь к мнению может проще создать массив потоков (TStream) и его потомков? Тоже как вариант - если ты все будешь хранить в памяти - то почему бы и нет. |
| Автор: Superklug 23.6.2009, 15:01 | ||
mrbrooks, чтобы сохранить текущее состояние буфера мне необходимо скопировать само значение, а не указатель. Если я пишу:
выдается ошибка Classes with properties cannot be copied by value. А как работать с TStream? |
| Автор: Superklug 24.6.2009, 15:54 | ||
| Нашел способ сохранять буфер в TStream. Код на Delphi: http://www.swissdelphicenter.ch/en/printcode.php?id=945 Переписал на Builder, но похоже где-то ошибся.. Посмотрите что не так?
|