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

Вниз

richedit и ??????? вместо кириллицы   Найти похожие ветки 

 
fellow   (2008-09-01 16:39) [0]

Приветствую!

копирую текст (путь) из коммандной строки проводника с содержанием кириллицы при английской раскладке (языке ввода), вставляю в richedit при любой раскладке, вместо кириллицы - вопросительные знаки, если копировалось из проводника когда для него активна русская раскладка, то при вставке в richedit все в порядке..

помогите сделать корректную вставку кириллицы..

пока решения найти не удалось..


 
Ega23 ©   (2008-09-01 16:44) [1]


> помогите сделать корректную вставку кириллицы..


переключай на русскую раскладку.
Это фишка известная.


 
Правильный$Вася   (2008-09-01 16:50) [2]


> переключай на русскую раскладку.

перед копированием в буфер


 
Anatoly Podgoretsky ©   (2008-09-01 16:51) [3]

Что такое "коммандной строки проводника "


 
fellow   (2008-09-01 16:53) [4]


> переключай на русскую раскладку.
> Это фишка известная.


спасибо, конечно :)

есть ли способ без переключения раскладки?


 
fellow   (2008-09-01 16:55) [5]


> Что такое "коммандной строки проводника "
> <Цитата>


та которая называется "Адрес" (извиняюсь за путаницу)


 
Ega23 ©   (2008-09-01 16:56) [6]


> есть ли способ без переключения раскладки?


Не знаю. Знаю, что этим грешат очень многие текстовые редакторы. Например, из редактора delphi код копируешь, чтобы сюда, на форум вставить - такая же фигня. Из QueryAnalyzer - тоже. Ну и т.д. и т.п.


 
fellow   (2008-09-01 17:43) [7]

вот проверил на XP sp3 со свежими обновлениями - там копирование вставка так как нужно независимо от раскладки клавиатуры...


 
Ega23 ©   (2008-09-01 17:46) [8]


> вот проверил на XP sp3 со свежими обновлениями


Вот на xp sp2, вставка из редактора Delphi сюда, с английской раскладкой:

// TODO : procedure TWebSrv.OnAccRoleSelIDsReply(  &#226;&#251;&#225;&#238;&#240;&#234;&#224;

С русской раскладкой:
/// TODO : procedure TWebSrv.OnAccRoleSelIDsReply(  выборка  


 
fellow   (2008-09-01 17:52) [9]

вот нашел такое:

type

TLangClipboard = class(TClipboard)
private
 procedure SetCodePage(const CodePage: longint);
public
 procedure Open; override;
 procedure Close; override;
end;

implementation

procedure TLangClipboard.Close;
begin
 SetCodePage(LangManager.LanguageID);
 inherited;
end;

procedure TLangClipboard.Open;
begin
 inherited;
 SetCodePage(LangManager.LanguageID);
end;

procedure TLangClipboard.SetCodePage(const CodePage: longint);
var Data: THandle;
   DataPtr: Pointer;
begin
 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;
end;

initialization

 FClipboard:= TLangClipboard.Create;
 OldClipboard:= SetClipboard(FClipboard);
 if OldClipboard <> nil then OldClipboard.Free;


но так как новичек, не знаю как это использовать...
там где нашел, говорят помогает...


 
{RASkov} ©   (2008-09-01 18:52) [10]

> [9] fellow   (01.09.08 17:52)

вместо clipbrd(или как он там, стандартный, там где описан TClipboard) используй данный юнит... Т.е. кусок текста нужно оформить и сохранить как модуль делфи... Далее, как я уже говорил в uses его в своем проекте...



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
15-1219237792
xXx
2008-08-20 17:09
2008.10.12
браузер с разными куками


15-1219428958
No_Dead
2008-08-22 22:15
2008.10.12
Регулярное выражение


15-1219142604
tytus
2008-08-19 14:43
2008.10.12
Не удаляется выделенный блок в редакторе...


15-1219647892
rx275d7_jedi
2008-08-25 11:04
2008.10.12
Написать программу


15-1219419409
+koha
2008-08-22 19:36
2008.10.12
При каждом включении синий экран