Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизПроблема с кириллицей и буфером обмена Найти похожие ветки
← →
fylhtq © (2004-07-30 13:48) [0]Не подскажете, уважаемые, как обойти данную проблему:
При копировании в буфер обмена Clipboard.asText кириллического текста - вставляется абракадабра.
← →
Sancho © (2004-07-30 14:01) [1]Попробуй перед копированием текста в буфер поменять раскладку клавиатуры (надо послать главному окну приложения сообщение WM_INPUTLANGCHANGEREQUEST).
← →
fylhtq © (2004-07-30 14:06) [2]Ух... А можно на пальцах, ежели не трудно?
← →
clickmaker © (2004-07-30 14:10) [3]
> fylhtq © (30.07.04 13:48)
Куда вставляется?
← →
fylhtq © (2004-07-30 14:12) [4]В частности в Блокнот
← →
Sancho © (2004-07-30 14:24) [5]
Var
ALayout: HKL
........
PostMessage(Application.MainForm.Handle,
WM_INPUTLANGCHANGEREQUEST, 0, ALayout);
ALayout принимает значения: Английская_раскладка = $4090409; Русская_раскладка = $4190419. В винде (2K и, наверное, XP) есть такой косяк: при копировании в буфер обмена русского текста копируются крякозяблики (когда включена английская раскладка), меняешь раскладку и все нормально
← →
GrayFace (2004-07-30 15:25) [6]В XP - тоже.
← →
clickmaker © (2004-07-30 15:49) [7]попробуй так
procedure SetClipboardText(const S: string);
var
wsz: PWideChar;
dwSize: Cardinal;
hData: Cardinal;
begin
if (Win32Platform = VER_PLATFORM_WIN32_NT) then begin
dwSize := (Length(S)+1) * SizeOf(WideChar);
hData := GlobalAlloc(GMEM_MOVEABLE or GMEM_DDESHARE, dwSize);
wsz := PWideChar(GlobalLock(hData));
StringToWideChar(S, wsz, Length(S)+1);
GlobalUnlock(hData);
Clipboard.SetAsHandle(CF_UNICODETEXT, hData);
end else
Clipboard.AsText := S;
end;
← →
fylhtq © (2004-07-30 16:14) [8]2clickmaker
Агромнейший спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c