Форум: "Прочее";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];
ВнизКак побороть беду с кодировкой? Найти похожие ветки
← →
Still Swamp (2008-01-23 11:52) [0]Есть форма на которой лежит TEdit. Я копирую из него текст "Астрономические сайты" в буфер обмена нажав Ctrl+C.
Далее открываю Word, или например мессенджер, и получаю из буфера нечто вроде "Àñòðîíîìè÷åñê& #232;å ñàéòû".
Как это забороть?
Пользую BDS, хотя проблема эта начиная с третьих дельфей имеется.
← →
Palladin © (2008-01-23 11:54) [1]Это общая проблема приложений не поддерживающих юникоде, копирование/вставка должна происходить при включеной раскладе киррилицы
← →
Still Swamp (2008-01-23 11:59) [2]Да .... действительно работает.
А это беда моя, системы, или принимающего приложения?
Я могу как нить исправить эту ситуацию?
← →
Palladin © (2008-01-23 12:00) [3]Ты - нет, повторяю еще раз (может в первый как-то коряво написал, подчерк у меня не ахти), это общая проблема приложений не поддерживающий юникоде.
← →
Still Swamp (2008-01-23 12:01) [4]Так.... тогда сформулирую иначе. :)
Кто в данном случае юникод не поддерживает, мое приложение или получатель?
← →
Palladin © (2008-01-23 12:01) [5]Не поддерживает Delphi, ты тут ни причем.
← →
Palladin © (2008-01-23 12:03) [6]Хотя ты в общем-то можешь исправить ситуацию перехватывая копирование в буффер и вставляя туда вручную юникоде...
← →
Still Swamp (2008-01-23 12:11) [7]Я не совсем представляю себе механизм взаимодействия приложения с буфером.
ПОтому может быть задам несколько глупый вопрос. Тем не менее...
А что можно сделать что бы мое приложение могло поддерживать юникод.
Допустим если не использовать на форме VCL а что нить иное. Это поможет?
← →
Still Swamp (2008-01-23 12:12) [8]Ага. Те я вешаю в приложении перехват сообщения WM_что_то и сам воюю с буфером дальше?
← →
Palladin © (2008-01-23 12:15) [9]ну во первых ты не можешь не использовать VCL используя форму :)
а во вторых есть компоненты поддерживающие юникоде TNT Unicode Controls, но есть одно но, они платные... в принципе можешь поискать в инете аналоги... а можешь и купить...
← →
Amoeba © (2008-01-23 12:24) [10]Здесь много полезной информации по данному вопросу:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=780
← →
Still Swamp (2008-01-23 12:31) [11]Спасибо. Пошел разбираться.
← →
Still Swamp (2008-01-23 12:39) [12]Не... "просто добавь воды" не прошло.
Если вернуться к вопросу о перехвате. WM_COPY, WM_CUT пойманные для формы, как я понимаю это то что мне нужно?
← →
Palladin © (2008-01-23 12:42) [13]не все так просто с перехватом, ты его не в форме должен делать, а в контроле... проще всего создать свой popupmenu замест системного
← →
ПостОвый терминатор © (2008-01-23 13:31) [14]
> Palladin © (23.01.08 11:54) [1]
> Это общая проблема приложений не поддерживающих юникоде,
> копирование/вставка должна происходить при включеной раскладе
> киррилицы
Следует ли это понимать так, что это поможет:var
russian: HKL;
.....
russian := LoadKeyboardLayout("00000419", 0);
.....
ActivateKeyboardLayout(russian, 0);
то есть программный переход на раскладку кириллицы
← →
Царев Евгений © (2008-01-23 15:36) [15]
> то есть программный переход на раскладку кириллицы
События у Edit"a OnCopy нет.
Куда ты это засунешь читай Palladin © (23.01.08 12:42) [13]
а даже если через перехват сообщений с TAppEvents или подругому то
russian := LoadKeyboardLayout("00000419", 0);//нагло и вроде как дурным тоном считается,
но если все-таки отбросить морали то, только для русскоязычной программы, а я например француз :) И мне бы не очень понравилась прога которая вытянет раскладку которой у меня нет.
Хотя для данной ветки это оффтоп
← →
MetalFan © (2008-01-23 19:19) [16]можно с пом.примерно такой функции закинуть текст в буфер при любой текущей раскладке:
function SetClipboardText( const AText: string ): Boolean;
var
h:THandle;
begin
Clipboard.Open;
Clipboard.AsText := AText;
h := Clipboard.GetAsHandle(CF_TEXT);
SetClipboardData(CF_LOCALE, h);
Clipboard.Close;
end;
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c