Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 560

•  TDictionary Custom Sort  6 581

•  Fast Watermark Sources  6 353

•  3D Designer  9 303

•  Sik Screen Capture  6 687

•  Patch Maker  7 058

•  Айболит (remote control)  7 069

•  ListBox Drag & Drop  5 939

•  Доска для игры Реверси  97 439

•  Графические эффекты  7 272

•  Рисование по маске  6 569

•  Перетаскивание изображений  5 443

•  Canvas Drawing  5 812

•  Рисование Луны  5 514

•  Поворот изображения  5 045

•  Рисование стержней  3 598

•  Paint on Shape  2 848

•  Генератор кроссвордов  3 727

•  Головоломка Paletto  3 007

•  Теорема Монжа об окружностях  3 810

•  Пазл Numbrix  2 507

•  Заборы и коммивояжеры  3 199

•  Игра HIP  2 166

•  Игра Go (Го)  2 101

•  Симулятор лифта  2 474

•  Программа укладки плитки  2 138

•  Генератор лабиринта  2 614

•  Проверка числового ввода  2 292

•  HEX View  2 625

•  Физический маятник  2 234

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Как сделать так, чтобы работали команды Cut, Copy в WebBrowsere



Будущий сайт компании Yahoo! в домене Европейского Союза: www.yahoo.eu

Вам нужно добавить следующие строки в начало unit:


initialization
  OleInitialize(nil);

finalization
  OleUninitialize;

Это не ошибка. Информацию по данному вопросу можно найти на сайте 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;





Похожие по теме исходники

Images Copyright

Interception Copy Paste

Copy Music

Copy File with ProgressBar

 

Klop Copy

Copy Files




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте