Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/106: Рейтинг темы: голосов - 106, средняя оценка - 4.90
 Аватар для San_Lex
2 / 2 / 0
Регистрация: 20.08.2009
Сообщений: 30

Буфер обмена

20.08.2009, 21:33. Показов 22097. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как в билдере скопировать значение из буфера обмена и записать тудаже??
2
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.08.2009, 21:33
Ответы с готовыми решениями:

Буфер обмена
Как сделать так что бы программа постоянно проверяла буфер обмена и содержимое буфера добавляла в Memo1. Додумался только до : ...

Буфер обмена +Excel
Добрый день! Если выделить группу ячеек в Excel, скопировать в буфер и после вставить в письмо, то текст вставляется как таблица. Rак...

Буфер обмена (ClipBoard)
У кого есть исходники, для работы с буферам и картинками, кому не жалко поскидайте. Спасибо )

8
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
21.08.2009, 09:54
San_Lex,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <vcl\Clipbrd.hpp>
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    //Как в билдере скопировать значение из буфера обмена
    if(Clipboard()->HasFormat(CF_TEXT))
    Edit1->Text = Clipboard()->AsText;
    //---и записать тудаже??
    Clipboard()->AsText = Application->Title + " тут рыбы нет!!!";
    
    Edit2->Text = Clipboard()->AsText;
}
//---------------------------------------------------------------------------
1
 Аватар для San_Lex
2 / 2 / 0
Регистрация: 20.08.2009
Сообщений: 30
21.08.2009, 12:38  [ТС]
а ты случаем ен в курсе почему при вставке текст дописываеться не после а перед содержаним эдита??
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
21.08.2009, 13:01
Цитата Сообщение от San_Lex Посмотреть сообщение
не после а перед
у меня после.
C++
1
2
3
4
5
6
7
8
9
10
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
    static i;
 
    Clipboard()->AsText = i++;
    Edit1->Text = Edit1->Text + Clipboard()->AsText;
}
//---------------------------------------------------------------------------
Добавлено через 5 минут 2 секунды
если нажать <Ctrl+C> тогда
вставка происходит в место позиционирования курсора.
(а курсор может быть и до, и после, и в середине текста)

Добавлено через 2 минуты 24 секунды
ошибка
Цитата Сообщение от mirso Посмотреть сообщение
если нажать <Ctrl+C> тогда
если нажать <Ctrl+V> тогда
0
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
04.11.2009, 20:29
У меня программа использует буфер обмена для "своих нужд": условно говоря жмыхаем на кнопку, прога заносит в clipboard свои данные, вставляет их куда-либо, чистит буфер... НО так то пользователю БО тоже так то нужен=)...

Вопрос тот же... но предположим что в буфере не только текст... допустим подобное решение можно реализовать скажем для CF_TEXT, CF_BITMAP, CF_OEMTEXT, CF_WAVE... а если другое? Даже если и организовать подобную реализацию решения, то не перебирать же все форматы?! Вот, скажем, знает кто-нибудь как записать все содержимое буфера обмена в поток типа MemoryStream или FileStream? Или там допустим что-нибудь вроде создать обьект типа буфера (тут sorr я не доконца понял мануал билдеровский и тот что нагуглил в сети, поэтому могу выразиться несколько неграмотно):
C++
1
TClipboard *Clip = new Clipboard();
и как нибудь из "общего" БО () загрузить данные в Clip... потом обратно? или может как нибудь использовать "отдельный" () буфер (тот же Clip) не затрагивая "общий" (функция ->PastleFromClipboard())?...
0
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
18.11.2009, 14:54
Проблема актуальна...
1 - накопал в справке изменил под себя, разумеется не работает:
C++
1
2
3
4
5
6
7
8
9
10
11
  WORD AFormat;
  unsigned AData; //тутки поставил тип [B]unsigned[/B] вместо [B]int[/B]
  HPALETTE APalette;
 
  TClipboard *nClip = Clipboard();
  nClip->Assign(Clipboard());
  Image3->Picture->Bitmap->SaveToClipboardFormat(AFormat, AData, APalette); //было так //((TImage*)Component)->Picture->SaveToClipboardFormat(AFormat, AData, APalette);
 
  TClipboard *pClip = Clipboard(); // don't clear the clipboard! - вот эта строчка меня особо взволновала
  pClip->SetAsHandle(AFormat, AData);  //
  Memo1->PasteFromClipboard(); //это я добавил (МЕМО - это измененное название компоненто, это не мемо =)))
don't clear the clipboard! - как это понимать? если мне не изменяет мной английский, это означает что буфер обмена не очистится... т.е. данные сохранятся... однако сие не происходит...

2 - вот решил по программировать "наугад":

TClipboard *nClip = Clipboard();
nClip->Assign(Clipboard());

разумеется не робит... это ГГ
0
 Аватар для russich
48 / 47 / 13
Регистрация: 02.12.2009
Сообщений: 144
02.12.2009, 12:41
sh4d°_°ff, буфер обмена используется постоянно и каждой программой, поэтому не заморачивайся,
используй его по своему назначению. Если не твоя, то другая программа будет использовать буфер.
А если ты хочешь сохранять содержимое буфера, нужно узнать формат объектов буфера и соответственно сохранять информацию в компоненте, в нужный момент опять загружать в буфер.
0
говнокодер
 Аватар для sh4d°_°ff
1273 / 297 / 35
Регистрация: 31.10.2009
Сообщений: 1,432
02.12.2009, 16:31
ok, тогда скажи, уважаемый russich, как мне быть если я допустим копирую кусок текста из ворда, но в тексте есть картинки, мне видимо надо одно сохранять в AnsiString другое в битмап... причем надо как-то соблюдать последовательность, или использовать и компонент который знает и то и другое (допустим у меня такой есть), но если в бувере еще кое че-нибудь другого формата? а если я копирую ярлычки с раб стола, че мне использовать?

з.ы.: не использовать я буфер не могу и очень надо чтобы содержимое сохранялось.
подробнее тут, конечно как вариант переписать класс... но мне не по зубам (а че мб кто поможет?), хоть я и не считаю себя слабым программистом, но я еще не волшебник, я только учус.
0
 Аватар для russich
48 / 47 / 13
Регистрация: 02.12.2009
Сообщений: 144
09.12.2009, 01:44
sh4d°_°ff
Я не пробывал, но может можно попробывать содержимое буфера сохранять в двоичном файле,
а потом снова загружать его в буфер? Может и не обязательно переписывать класс буфера.
Это как вариант, может и получиться, удачи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.12.2009, 01:44
Помогаю со студенческими работами здесь

Как перехватить буфер обмена?
Подскажите, как сделать чтоб скопированную в буфер обмена картинку, или текст отправилялась на почту? к примеру на дельфине отправка...

Рандом в билдере. Буфер обмена
Необходимо выводить на экран рандомное число, но в формате хххххх и копировать его в буфер обмена windows. помогите советом,...

RichEdit и буфер обмена Windows
Добрый день! Есть RichEdit на форме. Есть текст в буфере обмена, который должен быть вставлен в RichEdit. Размер текста более 64...

Копирование списка файлов в буфер обмена
Долго мучал пример на делфях, но так и нечего не вышло. Собственно непонятно как это должно правильно выглядеть. Рабочий оригинал ...

Буфер обмена, перехватывается микрософтовскими программами
Привет форумчане, суть вопроса состоит в том, что моя программа, перехватывает картинку с веб камеры и через буфер(не особо понимаю как,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru