Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Вниз

кодировка и clipboard   Найти похожие ветки 

 
lehich ©   (2005-05-18 14:25) [0]

копирую в буфер значение Memo.Text но при вставке в Word русские буквы отображаются неверно... сбивается кодировка, что делаю не правильно?

Заранее премного благодарен!


 
VMcL ©   (2005-05-18 14:58) [1]

>>lehich ©   (18.05.05 14:25)

1. CF_UNICODETEXT
2. Переключать раскладку на русскую перед операцией копирования в буфер.


 
lehich ©   (2005-05-18 16:11) [2]

сенкс!


 
lehich ©   (2005-05-18 17:25) [3]

сразу еще один вопрос:

переключаю раскладку клавиатуры используя -

LoadKeyboardLayout( StrCopy(Layout,"00000419"),KLF_ACTIVATE);
LoadKeyboardLayout(StrCopy(Layout,"00000409"),KLF_ACTIVATE);

а как проверить какая текущая раскладка?


 
alpet ©   (2005-05-18 20:00) [4]

GetKeyboardLayout ( 0 )) - дает описатель раскладки.

function KbdLayout: string;
const KL_NAMELENGTH = 9;
var name: array [0..KL_NAMELENGTH] of char;
begin
GetKeyboardLayoutName (name);
result := name;
end;


З.Ы. На консольных приложениях не работает.


 
scolopax ©   (2005-06-01 11:46) [5]

а как и где использовать этот CF_UNICODETEXT ?


 
Alex Konshin ©   (2005-06-01 12:34) [6]


const
 CODEPAGE = 1251;

procedure SetClipboardText( const AText : String );
var
 len, ulen : Integer;
 hClip : THandle;
 pClip : Pointer;
begin
 if Win32Platform=VER_PLATFORM_WIN32_NT then
   begin
     len := Length(AText)+1;
     ulen := len+len;
     hClip := GlobalAlloc(GMEM_MOVEABLE,ulen);
     if hClip=0 then raise Exception.Create(SysErrorMessage(GetLastError))
     else
       try
         pClip := PWideChar(GlobalLock(hClip));
         if pClip=nil then raise Exception.Create(SysErrorMessage(GetLastError))
         else
           begin
             try
               MultiByteToWideChar(CODEPAGE,0,PChar(AText),len,pClip,ulen);
             finally
               GlobalUnlock(hClip);
             end;
             Clipboard.SetAsHandle(CF_UNICODETEXT,hClip);
           end;
       except
         GlobalFree(hClip);
         raise;
       end;
   end
 else
   begin
     Clipboard.SetTextBuf(PChar(AText));
     SetClipboardData(CF_LOCALE,LANG_RUSSIAN);
   end;
end;



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
1-1121323224
Руслана
2005-07-14 10:40
2005.07.31
Объясните почему


14-1120571188
Ломброзо
2005-07-05 17:46
2005.07.31
Не радует.


8-1112193030
Антоныч
2005-03-30 18:30
2005.07.31
Access Violation на glutInitWindowPosition


1-1121252624
AKiM
2005-07-13 15:03
2005.07.31
DateTimePicker


1-1121230158
Bagdat
2005-07-13 08:49
2005.07.31
Кодировка в текстовых файлах.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский