Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Загадка с Memo и TntMemo [D7, WinXP]


Страницы:   1 2

Zoom ©   (2010-04-13 16:28:00) 

Ситуация такая

Memo1.Lines.Add('Проверка');
TntMemo1.Lines.Add('Проверка');
///

если теперь скопировать клавиатурой из Memo1 слово "Проверка" в TntMemo1 либо в другое юникодовое приложение у вас будет "ïðîâåðêà", однако если напечатать хоть одну букву в Memo1, с клавиатуры на русском, затем эту букву можно даже стереть, и скопировать слово "Проверка" в TntMemo1 либо в другое юникодовое приложение у вас будет "Проверка"...

теперь с TntMemo1

если скопировать клавиатурой из TntMemo1 слово "Проверка" в Memo1 у вас будет "????????", однако если напечатать хоть одну букву в TntMemo1, с клавиатуры на русском, затем эту букву можно даже стереть, и скопировать слово "Проверка" в Memo1 у вас будет "Проверка"...

помогите пожалуйста, где в этих memo кроится режим после набора в них хоть одной русской буквы они становятся не глючными ???


Zoom   (2010-04-13 18:36:00) [21]

Amoeba_  , тогда буду искать в других местах :)

и так тоже не получается...

var Data: THandle;
   DataPtr: Pointer;
   CodePage : longint;
begin

CodePage:=$0419;
 Data:= GlobalAlloc(GMEM_MOVEABLE + GMEM_DDESHARE, 4);
 try
   DataPtr := GlobalLock(Data);
   try
     Move(CodePage, DataPtr^, 4);
     SetClipboardData(CF_LOCALE, Data);
    finally
     GlobalUnlock(Data);
   end;
  except
   GlobalFree(Data);
 end;

memo1.PasteFromClipboard;


Amoeba_   (2010-04-13 17:33:00) [22]


> как добраться до буфера обмена в самой memo, где он там
> скрылся ?

В "самой memo" нет своего особого буфера обмена, так что скрываться там нечему.


Zoom   (2010-04-13 17:04:00) [23]

>Надо работать с приведением к WideString, а не с ANSI
это конечно хорошо, но существует много других приложений которые уже написаны для ANSI их-то всех не перепишешь, а сними приходится иногда иметь дело...

тем более проблема не с символами, а с клипбоард, как сказал anonims !

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


Anatoly Podgoretsky   (2010-04-13 16:40:00) [24]

Буфер обмена в TNT остался ANSI а значит общие правила при копировании из приложения в приложение.


anonims   (2010-04-13 16:39:00) [25]

режим кроется в буфере обмена и языковой панели windows


Anatoly Podgoretsky   (2010-04-13 16:33:00) [26]

> Zoom  (13.04.2010 16:28:00)  [0]

Надо работать с приведением к WideString, а не с ANSI


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо