Вниз
Скачать: CL | DM;

кодировка и 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
14-1121146430
cyborg
2005-07-12 09:33
2005.07.31
Бета-тестирование Longhorn началось


14-1120565584
Vlad Oshin
2005-07-05 16:13
2005.07.31
вторничная задачка. Угадыватель.


10-1098286030
GanibalLector
2004-10-20 19:27
2005.07.31
"как бы" утечка ...


1-1121260743
webpauk
2005-07-13 17:19
2005.07.31
проблемы с кодировкой


1-1121322454
zamik
2005-07-14 10:27
2005.07.31
Опять вопрос по QReport




   Наверх