Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2009, 22:05   #1
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию Копировать текст из webbrowser в memo (включить ctrl+c ctrl+v) копировать - вставить

Как заставить программу копировать текст из webbrowser в memo во время работы.
Alar вне форума Ответить с цитированием
Старый 17.03.2009, 22:36   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у меня есть код но он работает через временный файл
Код:
procedure WB_GetHTML(WebBrowser: TWebBrowser;St:TStrings;FileName:Shortstring='temp.htm');
var
 PersistStream: IPersistStreamInit;
 FileStream: TFileStream;
 Stream: IStream;
begin
 PersistStream := WebBrowser.Document as IPersistStreamInit;
 FileStream := TFileStream.Create(FileName,fmCreate);
 try
  Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
  PersistStream.Save(Stream, True);
 finally
  FileStream.Free;
 end;
 St.Clear;
 St.LoadFromFile(FileName);
end;
или ты имел ввиду выделеный текст?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 17.03.2009 в 22:47.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.03.2009, 22:45   #3
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Пепел Феникса, мне бы хотелось копировать текст, через буфер обмена, копировать, вставить там.

Как заставить работать вот эту конструкцию?
Код:
webbrowser.GetTextBuf(myChar,len);
Alar вне форума Ответить с цитированием
Старый 17.03.2009, 22:55   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я в модуль добавил это(в конце)
Код:
initialization
  OleInitialize(nil);

finalization
  OleUninitialize;
и буфер обмена стал работать(хотя говорили что нужно там еще заморочек добавить)
сейчас гляну твою функцию
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.03.2009, 23:01   #5
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Код:
initialization
  OleInitialize(nil);

finalization
  OleUninitialize;
Не помогло.

Посмотрю есть ли у меня библиотка Ole32.lib
Alar вне форума Ответить с цитированием
Старый 17.03.2009, 23:08   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
webbrowser.GetTextBuf(myChar,len);
оно работает но возвращает пустоту всегда

странно...после этих строк буфер обмена должен работать у Браузера
тогда вот эта полная статья:
Как сделать так, чтобы работали команды Cut, Copy в WebBrowsere



Вам нужно добавить следующие строки в начало unit:
Код:
initialization
  OleInitialize(nil);

finalization
  OleUninitialize;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.03.2009, 01:14   #7
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Статью я эту уже видел, вообще не понял что там за бред, ole32.dll у себя нашёл, про OleInitialize прочитал тут http://msdn.microsoft.com/en-us/libr...34(VS.85).aspx

Цитата:
Initializes the COM library on the current apartment, identifies the concurrency model as single-thread apartment (STA), and enables additional functionality described in the Remarks section below. Applications must initialize the COM library before they can call COM library functions other than CoGetMalloc and memory allocation functions.
Подгрузил функцию и процедуру из dll

Код:
var
  Form1: TForm1;

  function  OleInitialize(pvReserved: Pointer): HResult; stdcall;
procedure OleUninitialize; stdcall;

implementation


  function  OleInitialize;     external 'ole32.dll' name 'OleInitialize';
procedure OleUninitialize;   external 'ole32.dll' name 'OleUninitialize';

{$R *.dfm}

и только потом в конце перед end. инициализировал функцию.



Код:
initialization
  OleInitialize(nil);

finalization
  OleUninitialize;

  end.
В принципе, спасибо за наводку, но эту тему будут и чайники читать, им неплохо было бы сразу пояснить как подцепить эти функции в delphi, смотреть код выше.

Код:
OleInitialize(nil);
  OleUninitialize;
зачем

Код:
webbrowser.GetTextBuf
так и не разобрался.

Спасибо.
Alar вне форума Ответить с цитированием
Старый 18.03.2009, 17:47   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я забыл про модули
Код:
OleInitialize(nil);
  OleUninitialize;
находятся в модуле ActiveX
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.07.2010, 23:22   #9
alexei7
 
Регистрация: 04.03.2010
Сообщений: 8
По умолчанию

спасибо за разяснение, ато везде показан не рабочий код ---->Подгрузил функцию и процедуру из dll

Код:

var
Form1: TForm1;

function OleInitialize(pvReserved: Pointer): HResult; stdcall;
procedure OleUninitialize; stdcall;

implementation


function OleInitialize; external 'ole32.dll' name 'OleInitialize';
procedure OleUninitialize; external 'ole32.dll' name 'OleUninitialize';

{$R *.dfm}

и только потом в конце перед end. инициализировал функцию.



Код:

initialization
OleInitialize(nil);

finalization
OleUninitialize;

end.
В принципе, спасибо за наводку, но эту тему будут и чайники читать, им неплохо было бы сразу пояснить как подцепить эти функции в delphi, смотреть код выше.
alexei7 вне форума Ответить с цитированием
Старый 07.07.2010, 23:22   #10
alexei7
 
Регистрация: 04.03.2010
Сообщений: 8
По умолчанию

а это рабочий
alexei7 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет функции копировать-вставить mihakr Microsoft Office Excel 27 10.02.2010 12:31
alt+ctrl+del ben95 Общие вопросы Delphi 36 03.01.2009 16:28
Ctrl+Z реализация delphin100 Общие вопросы Delphi 6 10.09.2008 06:59
Перехват нажатия Ctrl Lonix Win Api 3 13.09.2007 18:20
Ctrl+Enter kisska Win Api 3 22.08.2007 20:55