![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
richedit и ??????? вместо кириллицы [XP]
fellow © (2008-09-01 16:39:00)Приветствую!
копирую текст (путь) из коммандной строки проводника с содержанием кириллицы при английской раскладке (языке ввода), вставляю в richedit при любой раскладке, вместо кириллицы - вопросительные знаки, если копировалось из проводника когда для него активна русская раскладка, то при вставке в richedit все в порядке..
помогите сделать корректную вставку кириллицы..
пока решения найти не удалось..
{RASkov} (2008-09-01 18:52:00) [1]> [9] fellow (01.09.08 17:52)
вместо clipbrd(или как он там, стандартный, там где описан TClipboard) используй данный юнит... Т.е. кусок текста нужно оформить и сохранить как модуль делфи... Далее, как я уже говорил в uses его в своем проекте...
fellow (2008-09-01 17:52:00) [2]вот нашел такое:
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;
но так как новичек, не знаю как это использовать...
там где нашел, говорят помогает...
Ega23 (2008-09-01 17:46:00) [3]
> вот проверил на XP sp3 со свежими обновлениями
Вот на xp sp2, вставка из редактора Delphi сюда, с английской раскладкой:
// TODO : procedure TWebSrv.OnAccRoleSelIDsReply( âûáîðêà
С русской раскладкой:
/// TODO : procedure TWebSrv.OnAccRoleSelIDsReply( выборка
fellow (2008-09-01 17:43:00) [4]вот проверил на XP sp3 со свежими обновлениями - там копирование вставка так как нужно независимо от раскладки клавиатуры...
Ega23 (2008-09-01 16:56:00) [5]
> есть ли способ без переключения раскладки?
Не знаю. Знаю, что этим грешат очень многие текстовые редакторы. Например, из редактора delphi код копируешь, чтобы сюда, на форум вставить - такая же фигня. Из QueryAnalyzer - тоже. Ну и т.д. и т.п.
fellow (2008-09-01 16:55:00) [6]
> Что такое "коммандной строки проводника "
> <Цитата>
та которая называется "Адрес" (извиняюсь за путаницу)
fellow (2008-09-01 16:53:00) [7]
> переключай на русскую раскладку.
> Это фишка известная.
спасибо, конечно :)
есть ли способ без переключения раскладки?
Anatoly Podgoretsky (2008-09-01 16:51:00) [8]Что такое "коммандной строки проводника "
Правильный$Вася (2008-09-01 16:50:00) [9]
> переключай на русскую раскладку.
перед копированием в буфер
Ega23 (2008-09-01 16:44:00) [10]
> помогите сделать корректную вставку кириллицы..
переключай на русскую раскладку.
Это фишка известная.