Проблемы копирования русского текста в clipboard и обратно
У многих возникает проблема с копированием русского текста в буфер обмена на ОС Win2000 и WinXP а
может и Win9x.
Простого и надежного решения данной проблемы найти, к сожалению, не удалось :-(
Представляю модуль который поможет решить проблему копирования русского текста в clipboard и
обратно.
Спасибо всем, кто помог решить эту проблему !!!
Нужно просто добавить в проект ...
unit RusClipboard;
interface
uses Clipbrd;
type
TRusClipboard = class(TClipboard)
private
procedure SetCodePage(const CodePage: longint);
public
procedure Open; override;
procedure Close; override;
end;
implementation
uses Windows;
{ TRusClipboard }
procedure TRusClipboard.Close;
begin
SetCodePage($0419);
inherited;
end;
procedure TRusClipboard.Open;
begin
inherited;
SetCodePage($0419);
end;
procedure TRusClipboard.SetCodePage(const CodePage: longint);
var Data: THandle;
DataPtr: Pointer;
begin
// Назначить кодовую страницу для буфера обмена
Data:= GlobalAlloc(GMEM_MOVEABLE + GMEM_DDESHARE, 4);
try
DataPtr := GlobalLock(Data);
try
Move(CodePage, DataPtr^, 4);
SetClipboardData(CF_LOCALE, Data);
finally
GlobalUnlock(Data);
end;
except
GlobalFree(Data);
end;
end;
var FClipboard: TClipboard;
OldClipboard: TClipboard;
initialization
// Установить клипборд
FClipboard:= TRusClipboard.Create;
OldClipboard:= SetClipboard(FClipboard);
if OldClipboard <> nil then
OldClipboard.Free;
end.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.