Текущий архив: 2004.05.02;
Скачать: CL | DM;
Вниз
Как сделать чтобы при копировании в буфер Найти похожие ветки
← →
RealRascal © (2004-04-11 15:05) [0]из мемо русские буковки не шкрябались? Пробовал изменять оем конверт, а также ставил чарсет на русский - эффекта ноль - при копировании в другую программу(или, например, сюда, в поле ввода на странице IE) вместо русских буковок - белиберда какая-то...
← →
DDA © (2004-04-11 15:59) [1]Проблемы копирования русского текста в clipboard и обратно Автор Игорь Цысь ( Igoreha ),
дата публикации 24 апреля 2003г
«Королевства Delphi»
У многих возникает проблема с копированием русского текста в буфер обмена на ОС 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.
Страницы: 1 вся ветка
Текущий архив: 2004.05.02;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.044 c