Re: Проблема кодировок
От: alive Россия  
Дата: 25.09.04 16:51
Оценка:
Здравствуйте, crazibill, Вы писали:

C>С чем это связано, и как с этим бороться ?


Вот рабочая процедура (когда-то нашел на Мастерах Delphi)

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(1251,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;


Только для русского языка, но можно переделать под любой другой
... << RSDN@Home 1.1.4 beta 3 rev 190 >> <<silent>>
Keep yourself alive
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.