Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Drag-n-Drop текста из MSWord в мое приложение


Автор: Гость_Alex 1.3.2005, 02:23
как реализовать на Delphi перетаскивание куска текста ИЗ MS Word в мое приложение? Спасибо!

Автор: Akella 1.7.2005, 17:25
Возьми и сделай через буфер обмена

открой Word скопируй в буфер обмена текст а клде напиши

Код

Uses ClipBrd;
...
Var
  Stroka: String;
Begin
  if ClipBoarFormat = CF_TEXT then
  Stroka := Clipboard.AsText;
End;


и вообще
http://forum.vingrad.ru/index.php?act=Search&CODE=show&searchid=e213c2e6b80510e85afc14adb6bfb1b7&search_in=posts&result_type=topics&highlite=clipboard
Добавлено @ 17:27
Код

 **** UBPFD *********** by delphibase.endimus.com ****
>> Получение текста из буфера обмена без использования модуля Clipbrd

Wnd - Handle окна, получающего доступ к буферу обмена;
Str - строка, в которую будет скопирован текст;

Зависимости: Windows
Автор:       Dimka Maslov, [email protected], ICQ:148442121, Санкт-Петербург
Copyright:   Dimka Maslov
Дата:        22 августа 2002 г.
***************************************************** }

function GetClipboardText(Wnd: HWND; var Str: string): Boolean;
var
  hData: HGlobal;
begin
  Result := True;
  if OpenClipboard(Wnd) then
  begin
    try
      hData := GetClipboardData(CF_TEXT);
      if hData <> 0 then
      begin
        try
          SetString(Str, PChar(GlobalLock(hData)), GlobalSize(hData));
        finally
          GlobalUnlock(hData);
        end;
      end
      else
        Result := False;
      Str := PChar(@Str[1]);
    finally
      CloseClipboard;
    end;
  end
  else
    Result := False;
end;
Пример использования: 

function TForm1.Button2Click(Sender: TObject)
var
  Str: string;
begin
  GetClipboardText(Handle, Str);
  ShowMessage(Str);
end;


Автор: AntonSaburov 1.7.2005, 17:28
Против такого решения. Я помню, что надо было что-тоделать через виндовые интерфейсы какие-то (не могу вспомнить сейчас smile ).

Но портить пользователю его клипбоард - это отвратительное решение. Лучше тогда вообще отказаться от драг-дропа, чем такое вытворять.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)