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

Вниз

DBReech Edit и   Найти похожие ветки 

 
Shaman_Naydak ©   (2002-03-07 14:32) [5]

Короче.. есть, есть проблемы у работы с клипбоардом у виндов..
тут в чем прикол в Win 9X можно запхать и забрать строки только
Ansi - CF_TEXT и OEM - CF_OEMTEXT.
В семействе NT есть еще его любимый родной формат CF_UNICODETEXT.
И у меня сильное обоснованное подозрение, что все строки внутрях клибоарда хранятся в уникоде.
А у 2000-х вообще глюк с руссификацией.. нормально работать можно только через уникод..
А класс клипбоард в дельфях к сожалению работает только с СF_TEXT.
=> вот так сказать простенькие процедурки от меня, нивелирующие все это безобразие:
procedure PutStringIntoClipBoard(const Str: WideString);
var
Size: Integer;
Data: THandle;
DataPtr: Pointer;
begin
Size:=Length(Str);
if Size = 0 then exit;
if not IsClipboardFormatAvailable(CF_UNICODETEXT) then
Clipboard.AsText:=Str
else
begin
Size:=Size shl 1 + 2;
Data := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, Size);
try
DataPtr := GlobalLock(Data);
try
Move(Pointer(Str)^, DataPtr^, Size);
Clipboard.SetAsHandle(CF_UNICODETEXT, Data);
finally
GlobalUnlock(Data);
end;
except
GlobalFree(Data);
raise;
end;
end;
end;

function GetStringFromClipboard: WideString;
var
Data: THandle;
begin
if not IsClipboardFormatAvailable(CF_UNICODETEXT) then
Result:=Clipboard.AsText
else
begin
Clipboard.Open;
Data := GetClipboardData(CF_UNICODETEXT);
try
if Data <> 0 then
Result := PWideChar(GlobalLock(Data))
else
Result := "";
finally
if Data <> 0 then GlobalUnlock(Data);
Clipboard.Close;
end;
end;
end;

Железно работает под 2000 и 98, проверял!

А вот на чтение:




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

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

Наверх




Память: 0.46 MB
Время: 0.011 c
1-66877
Андрей_Ш
2002-03-05 17:37
2002.03.21
Временная задержка


1-66812
Olfi
2002-03-06 18:44
2002.03.21
Как узнать, есть ли на строке символ


4-67055
Sava
2002-01-24 09:33
2002.03.21
Сообщения Windows!?


1-66918
None
2002-03-05 11:29
2002.03.21
Рисование поверх всех компонент.


7-67028
End
2001-12-19 15:48
2002.03.21
PChar --> String