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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2009, 23:46   #1
zver777
Пользователь
 
Регистрация: 31.07.2009
Сообщений: 89
По умолчанию Текст из Memo в буфер обмена

Всем привет.
Может кто-нибудь знает, как текст из Memo поместить в буфер обмена(как при нажатии копировать)?
zver777 вне форума Ответить с цитированием
Старый 19.08.2009, 23:53   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Код:
  Memo1.SelectAll;
  Memo1.CopyToClipboard;

Последний раз редактировалось uberchel; 20.08.2009 в 00:21.
uberchel вне форума Ответить с цитированием
Старый 19.08.2009, 23:58   #3
zver777
Пользователь
 
Регистрация: 31.07.2009
Сообщений: 89
По умолчанию

Цитата:
Сообщение от uberchel Посмотреть сообщение
Код:
Memo1.CopyToClipboard;
Но тут надо сначала выделить текст, и только тогда действует.
Возможно ли сделать такое без выделения текста?

Если нет, то как сделать чтобы при нажатии весь текст выделялся?
zver777 вне форума Ответить с цитированием
Старый 20.08.2009, 00:13   #4
unicode
Форумчанин
 
Аватар для unicode
 
Регистрация: 16.04.2009
Сообщений: 162
По умолчанию

Через Action делай
unicode вне форума Ответить с цитированием
Старый 20.08.2009, 00:20   #5
zver777
Пользователь
 
Регистрация: 31.07.2009
Сообщений: 89
По умолчанию

Можно поподробней про action, а то я не мастер в Delphi.

Всем спасибо. Вопрос решён.

Последний раз редактировалось Stilet; 20.08.2009 в 08:45.
zver777 вне форума Ответить с цитированием
Старый 20.08.2009, 00:38   #6
pro100-delphi
Пользователь
 
Аватар для pro100-delphi
 
Регистрация: 19.08.2009
Сообщений: 99
По умолчанию

uberchel - ты не сказал главное!!! для начала надо добавить модуль clipbrd.pas в uses!!!

При запуске Delphi, uses выглядит вот так:
Код:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;
А должно быть так (вроди бы надо clipbrd или clipbrd.pas прописать ещё не помню):
Код:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, clipbrd;
Если модуль clipbrd.pas не добавить ошибку будет писать))
pro100-delphi вне форума Ответить с цитированием
Старый 20.08.2009, 01:28   #7
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Код:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.SelectAll;
Memo1.CopyToClipboard;
end;
Делфи 7... Никаких ошибок...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 20.08.2009, 08:45   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Но тут надо сначала выделить текст,
А что мы любим невнимательно посты читать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.08.2009, 18:20   #9
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Воспользовался поиском... Обнаружил процедуру...
Код:
Function SetClipboardText(Wnd: HWND; Value: String): BooLean;
Var hData: HGlobal; pData: Pointer; Len: Integer;
Begin
Result:=True;
If OpenClipboard(Wnd) Then
      Begin
      Try
            Len:=Length(Value)+1;
            hData:=GlobalAlloc(GMEM_MOVEABLE Or GMEM_DDESHARE, Len);
            Try
                  pData:=GlobalLock(hData);
                  Try
                        Move(PChar(Value)^, pData^, Len);
                        EmptyClipboard;
                        SetClipboardData(CF_Text, hData);
                  Finally
                        GlobalUnlock(hData);
                  End;
            Except
                  GlobalFree(hData);
                  Raise
            End;
      Finally
            CloseClipboard;
            End;
      End
Else
      Result:=False;
End;

Procedure TForm1.Button1Click(Sender: TObject);
Begin
SetClipboardText(Handle, Memo1.Text);
End;
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Буфер обмена nusik Общие вопросы Delphi 2 21.05.2009 00:53
Копирование в буфер обмена Xanex Общие вопросы Delphi 5 18.05.2009 23:13
буфер обмена __@cmd@__ Общие вопросы Delphi 2 04.02.2009 12:24
Как скопировать текст в буфер обмена с одного edit-a и вставить в другой SeRhy Общие вопросы Delphi 2 26.07.2008 23:02
Скопировать в буфер обмена Dj_smart JavaScript, Ajax 8 15.05.2008 19:16