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

Вниз

Не работает копирование в буфер в win9x   Найти похожие ветки 

 
A Programmer   (2007-05-26 16:10) [0]


 SelLen:= Length(ws);
 if (SelLen > 0) then
 begin
   OpenClipboard(Application.Handle);
   try
     EmptyClipboard;
     hg:=GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE, SelLen*2+2);
      try
        if (hg <> 0) then
        begin
          P:=GlobalLock(hg);
          if P <> nil then
          begin
            Move(PWideChar(ws)^, P^, SelLen * 2 + 2);
            SetClipboardData(CF_UNICODETEXT,hg);
          end;
        end;
      finally
        GlobalUnlock(hg);
        GlobalFree(hg);
      end;
   finally
     CloseClipboard;
   end;
 end;


В Win2000 всё работает, в win9x не происходит копирования в буфер, хотя переменная ws содержит юникод-символы.
Как это исправить?


 
begin...end ©   (2007-05-26 17:30) [1]

CF_UNICODETEXT

Windows NT/2000/XP: Unicode text format. Each line ends with a carriage return/linefeed (CR-LF) combination. A null character signals the end of the data.

(c) MSDN


 
A Programmer   (2007-05-26 18:02) [2]

>CF_UNICODETEXT

Ясно,но я пробовал и CF_TEXT, всё равно не работает - указатель P указывает на адрес, по которому находится мусор или одни нули (если обнулить hg:=GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE or GMEM_ZEROINIT, SelLen*2+2);).

А как же поместить юникод в буфер обмена в win9x, опера ведь это как-то делает?


 
A Programmer   (2007-05-26 19:15) [3]

Нашёл в чём дело:

GlobalFree(hg);

должен быть после

CloseClipboard;



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

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

Наверх




Память: 0.47 MB
Время: 0.021 c
15-1179830364
fts@Grafika
2007-05-22 14:39
2007.06.17
нашёл ссылку на реализацию алгоритма Диффи-Хеллмана


1-1177014817
КрЫска
2007-04-20 00:33
2007.06.17
Какой пользователь работает на компьютере?


11-1162392613
Blackie
2006-11-01 17:50
2007.06.17
открытие файла в memo


2-1173950118
Mishenka
2007-03-15 12:15
2007.06.17
Работа с MySql


15-1179845192
Strate
2007-05-22 18:46
2007.06.17
Перевод из Fortran в Pascal (Delphi)