![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
кодировка [D5, Win2k]
Philya © (2001-12-21 18:00:00)var s:ansistring;
clip:TClipboard;
begin
clip := TClipboard.Create;
s:="по-русски";
clip.AsText := s;
SetClipboard(clip);
end;
после этого строка в буфере не читается, будучи скопированной например, в Notepad, Word или Excel.
при этом в другие программы, скажем, в ICQ или SQL-Navigator строчка вставляется нормально.
Что делать?
Сомневающийся (2001-12-24 16:51:00) [1]Это "проблема" использования unicode-кодировке в NT платформах.
При переносе из NT на 9x платформы через клипбоард в Excel проблема лечиться,как вариант, использованием в Excel unicod (версии 2.xx) или "русифицированных" TTF-шрифтов (со сдвинутой конвертором русской таблицей).
В принципе, можно программно "сдвигать" кодировку и в CLipe перед Paste.
Digitman (2001-12-24 16:06:00) [2]>Philya
ПРоблема действительно существует (столкнулся с ней именно при переносе приложения с Win9x на W2k). Именно - при программной вставке текста из буфера обмена в лист Excel вызовом метода Paste. Пока тоже не знаю решения, но, судя по всему, это "заморочка" самой ОС, а не MSOffice (с той же версией MSOffice на платформе Win9x вставка проходит без проблем)
Philya (2001-12-24 15:50:00) [3]пробовали под Win2K и XP - не работает.
MBo (2001-12-21 18:35:00) [4]Для чего создается экземпляр ClipBoard?
Это не рекомендуется хелпом, если только нет особых причин. Все равно ведь в глобальный пишешь.
var s:ansistring;
begin
s:="по-русски";
clipboard.AsText := s;
end;
так все работает нормально (Win98)