Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как програмно записать строку в буфер обмена? [D7, WinXP]


n-neo ©   (2004-11-07 21:28:00) 

Как програмно записать строку в буфер обмена?


GuAV   (2004-11-07 22:18:00) [1]

default ©   (07.11.04 22:06) [5]
А я, дурак, велосипед изобрёл... сам переводил прример с MSDN в Delphi...


default   (2004-11-07 22:06:00) [2]

uses Clipbrd;
...
Clipboard.AsText := NeedString


GuAV   (2004-11-07 21:46:00) [3]

procedure CopyText(const S: string);
var hglbCopy: THandle; L: Cardinal;
begin
 L:=Length(S)+1;
 Win32Check(OpenClipboard(Application.Handle));
 try
   Win32Check(EmptyClipboard);
   hglbCopy:=GlobalAlloc(GMEM_DDESHARE, L);
   Move(PChar(S)^,GlobalLock(hglbCopy)^,L);
   GlobalUnlock(hglbCopy);
   SetClipboardData(CF_TEXT, hglbCopy);
 finally
   CloseClipboard;
 end;
end;


default   (2004-11-07 21:43:00) [4]

или используй созданный объект Clipboard типа TClipboard
уж VCL так VCL, API лучше только там где VCL не в силах помочь


KilkennyCat   (2004-11-07 21:38:00) [5]

и не забыть вначале выполнить OpenClipboard, и соответственно в конце - CloseClipboard.


KilkennyCat   (2004-11-07 21:35:00) [6]

function SetClipboardData(Format: Word; Mem: THandle): THandle;

Format - в данном случае CF_Text
Mem - память, где данные.


Наверх

Титульная страница Поиск, карта сайта Написать письмо