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

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

Работа с буфером обмена под Win2000 [D5, Win95/98]


Александр_ ©   (2002-05-16 13:14:00) 

Всем привет! Почему при вставке текста (скажем в RichEdit)через буфер обмена под Win 2000 появляются кракозябры, а под Win 9X все отлично работает? Подскажите, как это решить. Заранее благодарен.


Александр_   (2002-05-16 17:37:00) [1]

Спасибо. Работает отлично.


Polevi   (2002-05-16 16:14:00) [2]

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;


Reindeer Moss Eater   (2002-05-16 13:19:00) [3]

Патамучто юникод.
Перед копированием в буфер смени раскладку клавиатуры


Наверх

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