![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблема с кодировкой при копированиии в буфер [D5, WinXP]
MetalFan © (2006-02-06 10:22:00)
uses Clipbrd;
...
var
lStr: string;
begin
....
lStr := memo1.lines.text;
....
Clipboard.AsText := lStr;
end;
казалось бы все должно быть в порядке...
но если у текущего (приложения)окна , где выполняется этот код, включена английская раскладка клавиатуры, а копирутеся кириллица, то при вставке (в браузер) получаем нечитаемый текст(((
кто знает как лечить?!
да, WinXP SP2, D5 sp1.
REA (2006-02-08 10:39:00) [1]Есть компонент, который подменяет переменную Clipboard и делает примерно то же, что и [7]
MetalFan (2006-02-07 16:51:00) [2]2 Leonid Troyanovsky
СПАСИБО!!!!
Leonid Troyanovsky (2006-02-06 19:36:00) [3]
> MetalFan © (06.02.06 12:31) [5]
> кроме варианта переключения раскладки, как я понял, больше
> ничего не поделаешь?
var
h:THandle;
begin
Clipboard.Open;
Clipboard.AsText := Memo1.Text;
h := Clipboard.GetAsHandle(CF_TEXT);
SetClipboardData(CF_LOCALE, h);
Clipboard.Close;
end;
--
Regards, LVT.
capkoh (2006-02-06 17:44:00) [4]Можно еще как CF_UNICODETEXT копировать, но для этого нужно чуть углубиться в TClipboard и преобразовать строку в Unicode. Точнее смотри TClipboard.Set(Get)Buffer > Set(Get)ClipboardData.
Мне не удалось избавиться от закорючек другими (не переключающими раскладки) методами, кроме как описанным выше.
Удачи!
MetalFan (2006-02-06 12:31:00) [5]кроме варианта переключения раскладки, как я понял, больше ничего не поделаешь?
Desdechado (2006-02-06 10:59:00) [6]это фишка "интеллекта винды"
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1139141002&n=18
MetalFan (2006-02-06 10:48:00) [7]пока я так и сделал... но в чем может быть проблема?! причем тут буфер и активная раскладка клавы?
Альф (2006-02-06 10:34:00) [8]>Переключением раскладки.
примерно так
ActivateKeyboardLayout(SUBLANG_DEFAULT shl 10 + LANG_RUSSIAN, 0);
wal (2006-02-06 10:27:00) [9]
> кто знает как лечить?!
Переключением раскладки.