Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизКопирование в TWebBrowser Найти похожие ветки
← →
frogl (2003-10-24 16:12) [0]Добрый день.
Довольно известная вещь. В TWebBrowser выделяем кусок текста, пробуем копировать (из контекстного меню или ctrl-с). В буфер обмена ничего не копируется.
Это как нибудь лечится и как ?
Заранее благодарен.
← →
Ломброзо (2003-10-24 16:21) [1]Один из симптомов какого-то трояна или вируса... названия не помню. В окне IE тоже самое?
← →
frogl (2003-10-24 16:50) [2]Нет.
← →
frogl (2003-10-24 16:50) [3]Вирус тут ни при чем - это на всех компах так.
← →
Oleg_ (2003-10-26 16:03) [4]У меня копируется без проблем, без каких либо специальных ухищрений. D6 IE6
← →
Дмитрий В. Белькевич (2003-10-26 21:13) [5]Фак, господа! Не в смысле fuck, а в смысле faq:
Вопрос: Paste работает отлично, но Cut и Copy отказываются работать. В чём проблема?
Ответ: Вам нужно добавить следующие строки в начало unit:
initialization
OleInitialize(nil);
finalization
OleUninitialize;
Вопрос: Кобинации клавиш Ctrl-C, Ctrl-O, и т.д. не срабатывают. В чём проблема?
Ответ: Это не ошибка. Информацию по данному вопросу можно найти на сайте Microsoft KnowledgeBase статья Q168777. Приведённый ниже код, устраняет данную проблему:
...
var
Form1: TForm1;
FOleInPlaceActiveObject: IOleInPlaceActiveObject;
SaveMessageHandler: TMessageEvent;
...
implementation
...
procedure TForm1.FormActivate(Sender: TObject);
begin
SaveMessageHandler := Application.OnMessage;
Application.OnMessage := MyMessageHandler;
end;
procedure TForm1.FormDeactivate(Sender: TObject);
begin
Application.OnMessage := SaveMessageHandler;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.OnMessage := SaveMessageHandler;
FOleInPlaceActiveObject := nil;
end;
procedure TForm1.MyMessageHandler(var Msg: TMsg; var Handled: Boolean);
var
iOIPAO: IOleInPlaceActiveObject;
Dispatch: IDispatch;
begin
{ exit if we don"t get back a webbrowser object }
if WebBrowser = nil then
begin
Handled := False;
Exit;
end;
Handled:=(IsDialogMessage(WebBrowser.Handle, Msg) = True);
if (Handled) and (not WebBrowser.Busy) then
begin
if FOleInPlaceActiveObject = nil then
begin
Dispatch := WebBrowser.Application;
if Dispatch <> nil then
begin
Dispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO);
if iOIPAO <> nil then
FOleInPlaceActiveObject := iOIPAO;
end;
end;
if FOleInPlaceActiveObject <> nil then
if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP)) and
((Msg.wParam = VK_BACK) or (Msg.wParam = VK_LEFT) or (Msg.wParam = VK_RIGHT)) then
//nothing - do not pass on Backspace, Left or Right arrows
else
FOleInPlaceActiveObject.TranslateAccelerator(Msg);
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c