Форум: "Сети";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
ВнизПередача текста из буфера обмена по сети Найти похожие ветки
← →
Chaser © (2006-05-03 15:04) [0]Передаю текстовые данные из буфера обмена с помощью Indy idTCPClient и idTCPServer.
При передаче серверу латинского текста, сервер принимает его в нормальном виде.
Если передавать кириллицу например из Memo, то все также ОК.
Если же брать такст из буфера обмена - Str.Text:=ClipBoard.AsText;, то на сервер все передается в сбитой кодировке (всякая абракодабра).
Хотя в Str.Text из буфера записываеься нормальный русский текст (ели смотреть отладчиком).
В чем может быть проблема?
← →
Alex Konshin © (2006-05-03 15:16) [1]В кодовой странице. Это известная проблема и я когда-то даже приводил конкретное место в исходниках Delphi, где собака порылась. Но сейчас не помню где. Помню, что связано с установкой кодовой страницы для текущей нити.
procedure SetClipboardText(s:string);
type PDWord = ^DWord;
var
i : integer;
StrPtr,LocPtr : PChar;
StrHandle,LocHandle: THandle;
begin
i := Length(s);
StrHandle:=GlobalAlloc(GMEM_MOVEABLE or GMEM_DDESHARE,i+1);
if StrHandle=INVALID_HANDLE_VALUE then RaiseLastWin32Error;
try
StrPtr:=GlobalLock(StrHandle);
if StrPtr=nil then RaiseLastWin32Error;
try
LocHandle:=GlobalAlloc(GMEM_MOVEABLE or GMEM_DDESHARE,SizeOf(DWord));
if LocHandle=INVALID_HANDLE_VALUE then RaiseLastWin32Error;
try
LocPtr:=GlobalLock(LocHandle);
if LocPtr=nil then RaiseLastWin32Errorж
try
Move((@s[1])^,StrPtr^,i); (StrPtr+i)^ := #0;
PDWord(LocPtr)^ := (DWord(SORT_DEFAULT) shr 16) or
(SUBLANG_DEFAULT shl 10) or LANG_RUSSIAN;
Win32Check(OpenClipboard(0));
try
Win32Check(EmptyClipboard);
if SetClipboardData(CF_TEXT,StrHandle)=0 then
RaiseLastWin32Error;
if SetClipboardData(CF_LOCALE,LocHandle)=0 then
RaiseLastWin32Error;
finally
CloseClipboard;
end;
finally
GlobalUnlock(LocHandle);
end;
except
GlobalFree(LocHandle);
raise;
end;
finally
GlobalUnlock(StrHandle);
end;
except
GlobalFree(StrHandle);
raise;
end;
end;
← →
Chaser © (2006-05-03 15:24) [2]Спасибо!
Как раз то что нужно!
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.044 c