Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2019, 04:57   #1
Maetsky
Пользователь
 
Регистрация: 14.03.2011
Сообщений: 14
По умолчанию Работа с буфером обмена в C++ Builder

Сделал простую программу на Delphi, которая добавляет в буфер обмена фразу при копировании текста из программы в буфер. Для этого на форму добавил объекты RichEdit1, Timer1 и PopupMenu1, в последнем три пункта меню: MenuCopy, MenuSelectAll и MenuClear. PopupMenu1 привязан к RichEdit1.

Вот код:

Код:
uses ClipBrd;

const S='При публикации ссылка на источник обязательна.';

...

procedure TForm1.MenuCopyClick(Sender: TObject);
begin
  RichEdit1.CopyToClipboard;
  ClipBoard.AsText:=ClipBoard.AsText+#13+#10+S;
end;

procedure TForm1.MenuSelectAllClick(Sender: TObject);
begin
  RichEdit1.SelectAll;
end;

procedure TForm1.MenuClearClick(Sender: TObject);
begin
  RichEdit1.Clear;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  MenuCopy.Enabled:=(RichEdit1.SelText<>'');
  MenuClear.Enabled:=(RichEdit1.Lines.Count>0);
  MenuSelectAll.Enabled:=MenuClear.Enabled;
end;
Кто-нибудь поможет перевести этот код в C++Builder? По крайней мере подключение модуля ClipBrd и строку
Код:
ClipBoard.AsText:=ClipBoard.AsText+#13+#10+S;
Заранее большое спасибо!
Maetsky вне форума Ответить с цитированием
Старый 06.11.2019, 10:28   #2
stslam
Пользователь
 
Регистрация: 21.01.2014
Сообщений: 12
По умолчанию

Код:
//BCB6, в более новых AnsiString меняется на WideString или UnicodeString
//и инклюд немножко другой
#include <Clipbrd.hpp>
//uses ClipBrd;

const AnsiString S = "При публикации ссылка на источник обязательна.";
//const S='При публикации ссылка на источник обязательна.';

/*procedure TForm1.MenuCopyClick(Sender: TObject);
begin
  RichEdit1.CopyToClipboard;
  ClipBoard.AsText:=ClipBoard.AsText+#13+#10+S;
end;*/

void __fastcall TForm1::MenuCopyClick(TObject *Sender)
{
  RichEdit1->CopyToClipboard();
  ClipBoard->AsText = ClipBoard->AsText+"\r\n"+S;
}

/*procedure TForm1.MenuClearClick(Sender: TObject);
begin
  RichEdit1.Clear;
end;
*/
void __fastcall TForm1::MenuClearClick(TObject *Sender)
{
 RichEdit1->Clear();
}

/*

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  MenuCopy.Enabled:=(RichEdit1.SelText<>'');
  MenuClear.Enabled:=(RichEdit1.Lines.Count>0);
  MenuSelectAll.Enabled:=MenuClear.Enabled;
end;
*/
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  MenuCopy->Enabled = (RichEdit1->SelText.Length());
  MenuClear->Enabled = (RichEdit1->Lines->Count);
  MenuSelectAll->Enabled = MenuClear->Enabled;
}

//ClipBoard.AsText:=ClipBoard.AsText+#13+#10+S;
// Заносит в буфер имеющийся в нем текст, 
// добавляет перенос на новую строку и плюсует допись из константы S
stslam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с буфером обмена David Villa C++ Builder 0 24.10.2012 10:53
Работа с буфером обмена Arsenx777 Общие вопросы Delphi 4 04.08.2011 22:03
Работа с буфером обмена. star007 Помощь студентам 0 16.06.2010 20:37
Работа с буфером обмена Gerzs Общие вопросы Delphi 2 26.03.2010 15:15
Работа с буфером обмена(win) NikLik Общие вопросы Delphi 6 24.06.2008 00:59