Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.10;
Скачать: CL | DM;

Вниз

MS Word и буфер обмена   Найти похожие ветки 

 
_Shuler_   (2008-01-13 19:53) [0]

всем хай!!!
вставляю из буфера обмена русский текст  в документ ворда и пояляются какие-то крякозяблики(((.
если вставить в другой текстовый редактор, то все нормально.
но в виндоузовском блокноте теже глюки. Подскажите а чем проблема???
может из-за кодировки???
Подскажите ПЛЗ


 
savyhinst ©   (2008-01-13 19:57) [1]


> может из-за кодировки

Именно из-за неё.


 
Dib@zol ©   (2008-01-13 19:59) [2]

показывай код добавления в буфер.


 
_Shuler_   (2008-01-13 20:02) [3]

Clipboard.AsText := clipboard.AsText+"sdfdg"

а в ворде вот  так просто:
wordApplication1.Selection.Paste;


 
_Shuler_   (2008-01-13 20:03) [4]

но с английсеом все нормально. только русский глючит...


 
{RASkov} ©   (2008-01-13 20:27) [5]

> [4] _Shuler_   (13.01.08 20:03)

Проводи операцию копирование-вставка при русской раскладке...


 
_Shuler_   (2008-01-13 20:30) [6]

хы. действительно работает. Спасибо.
Вот только не пойму: это как считать за глюк или так и должно быть???


 
{RASkov} ©   (2008-01-13 20:36) [7]

фича


 
_Shuler_   (2008-01-13 21:31) [8]

возникла еще проблемка.
после подключения к ворду (раскладка у меня по умолчанию english) перед вставкой не успеваю сменить раскладку(((.
делаю так:  LoadKeyboardLayout( StrCopy(Layout,"00000419"),KLF_ACTIVATE);
как перед вставкой сменить раскладку?


 
_Shuler_   (2008-01-13 21:34) [9]

наверно так бужет корректней: как сменить раскладку именно в ворде???
Спасибо!


 
Anatoly Podgoretsky ©   (2008-01-13 22:00) [10]

> _Shuler_  (13.01.2008 20:30:06)  [6]

Считай за глюк, поскольку ты работаешь по технологие ДОС, а не Windows NT
В буфер надо помещать в Юникоде, а не ANSI


 
_Shuler_   (2008-01-13 22:05) [11]

> Anatoly Podgoretsky ©   (13.01.08 22:00) [10]

  > Считай за глюк, поскольку ты работаешь по технологие ДОС,
  >  а не Windows NTВ буфер надо помещать в Юникоде, а не ANSI

ok.
Подскажите как тогда в Юникоде помещать
или
как сменить раскладку клавы в ворде.
PLZ


 
Anatoly Podgoretsky ©   (2008-01-13 22:47) [12]

Мне лень заниматься экспериментами, попробуй сам переделать эту функцию из генофонда.
procedure TClipboard.SetAsText(const Value: string);
begin
  SetBuffer(CF_TEXT, PChar(Value)^, Length(Value) + 1);
end;


 
_Shuler_   (2008-01-13 23:07) [13]

что-то не получается.(((
>>>SetBuffer(CF_TEXT, PChar(Value)^, Length(Value) + 1);
делфи говорит что не знает такого.


 
Anatoly Podgoretsky ©   (2008-01-13 23:08) [14]

> _Shuler_  (13.01.2008 23:07:13)  [13]

Это текст из модуля ClipBrd остальное сам там посмотришь, или можешь сам все сделать напрямую через WinAPI.


 
{RASkov} ©   (2008-01-13 23:51) [15]

> [13] _Shuler_   (13.01.08 23:07)

Не уверен в правильности("тупая переделка"), но всеж:
procedure SetBuffer(Format: Word; var Buffer; Size: Integer);
var
 Data: THandle;
 DataPtr: Pointer;
begin
 OpenClipboard(0);
 try
   Data := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, Size);
   try
     DataPtr := GlobalLock(Data);
     try
       Move(Buffer, DataPtr^, Size);
       SetClipboardData(Format, Data);
     finally
       GlobalUnlock(Data);
     end;
   except
     GlobalFree(Data);
     raise;
   end;
 finally
   CloseClipboard;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
const S: PWideChar ="Тест русского текста Test English text Яя";
begin
 SetBuffer(CF_UNICODETEXT, PWideChar(S)^, Length(S)*2+2);
end;

(Для раздумья)


 
_Shuler_   (2008-01-15 21:20) [16]

мда ;жаль.
но что-то я не смог разобраться с этим Unicode(((
мож кто еще поможет.ПЛЗ


 
ketmar ©   (2008-01-15 22:00) [17]

>[16] _Shuler_ (15.01.08 21:20)
>но что-то я не смог разобраться с этим Unicode(((
>мож кто еще поможет.ПЛЗ

запросто. магазин хозтоваров->метла->нет проблем с Unicode.
или учимся искать в интернете и справках, да вдумчво читать найденое.


 
Amoeba ©   (2008-01-15 23:38) [18]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=780
Тут много чего интересного, особенно в обсуждении. Да и здесь на форуме в конце прошлого года было немало конкретно полезного.


 
_Shuler_   (2008-01-17 11:10) [19]


> {RASkov} ©   (13.01.08 23:51) [15]

Спасибо.
Разобрался:)



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

Текущий архив: 2008.02.10;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.031 c
15-1199706562
DI-524
2008-01-07 14:49
2008.02.10
Вопрос к владельцам сабжа


4-1183341673
Grademax
2007-07-02 06:01
2008.02.10
Подскажите, как перевести чужое окно в режим "Поверх всех окон"


6-1180064868
Strang
2007-05-25 07:47
2008.02.10
Почтовый сервер


15-1199465263
DmT
2008-01-04 19:47
2008.02.10
Деление столбиком


8-1173452250
Real
2007-03-09 17:57
2008.02.10
Окно поверх любого видеоизображения