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

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

unicode & clipboard


Вадим ©   (2003-03-23 23:37:00) 

Есть s: string. Необходимо копировать стустроку в буфер обмена в юникоде. Как это сделать. Если я правильно понял, то сначала надо ее конвертировать в юникод функцией StringToWideChar(), а дальше что делать? Как получившийся данные копировать в буфер обмена?

Спасибо!


NAlexey   (2003-03-24 10:53:00) [1]

Взял кажется с сайта "Королевство Delphi"

procedure BufferToClipboard(Buffer: String);
var
WideBuffer: WideString;
BuffSize: Cardinal;
Data: THandle;
DataPtr: Pointer;
begin
if Buffer <> "" then begin
WideBuffer := Buffer;
BuffSize := length(Buffer) * SizeOf(WideChar);
Data := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE+GMEM_ZEROINIT, BuffSize + 2);
try
DataPtr := GlobalLock(Data);
try
Move(PWideChar(WideBuffer)^, Pointer(Cardinal(DataPtr))^, BuffSize);
finally
GlobalUnlock(Data);
end;
Clipboard.SetAsHandle(CF_UNICODETEXT, Data);
except
GlobalFree(Data);
raise;
end;
end;
end;
<\CODE>


Вадим   (2003-03-24 10:38:00) [2]

up

Если я плохо объяснил суть задачи, то попробую еще раз. Есть PWideChar. Как копировать это в буфер обмена?


Наверх

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