@Romanson

Как присвоить процедуру к динамически созданному обьекту TChromium в делфи?

Приветствую Господа! Пытаюсь разобраться почему не присваивается процедура OnBeforePopup для динамически созданного обьекта Tchromium
Ошибка при компиляции:
[dcc32 Error] Unit6.pas(117): E2009 Incompatible types: 'method pointer and regular procedure'

код процедуры
procedure OnBeforePopup(Sender: TObject; const browser: ICefBrowser;
const frame: ICefFrame; const targetUrl, targetFrameName: ustring;
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
var popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var noJavascriptAccess: Boolean; out Result: Boolean);
var
web: TChromium;
begin
// prevent popup
web.Load(targetUrl);
Result := True;
end;


Как создаю обьект и вызываю процедуру:

procedure TForm6.ChromeTabs1ButtonAddClick(Sender: TObject;
var Handled: Boolean);
var
T: TTabSheet;
web: TChromium;
begin
PageControl1.ActivePageIndex := ChromeTabs1.ActiveTabIndex;

T := TTabSheet.Create(self);
T.PageControl := PageControl1;
T.Caption := 'Общая';
PageControl1.ActivePage := T;
// t.TabVisible:=false;

web := TChromium.Create(T);
web := TChromium.Create(self);
web.OnBeforePopup := OnBeforePopup;
TWinControl(web).Name := 'NewWebBrowser' + inttostr(random(999666111));
TWinControl(web).Parent := T;

web.Align := alClient;

web.Load('ya.ru');

web.OnBeforePopup := OnBeforePopup;

end;
  • Вопрос задан
  • 661 просмотр
Решения вопроса 2
@kalapanga
Объявите OnBeforePopup как метод какого-нибудь класса, судя по всему TForm6 самое оно
Ответ написан
@IsQuazar
16 лет. Учусь.
Определи эту процедуру, как метод класса формы.

Пример:
type
  TFormName = class(TForm)
    procedure OnBeforePopup(...);
  end;

implementation

procedure TFormName.OnBeforePopup(...);
begin
  // Something
end;
...
web.OnBeforePopup := OnBeforePopup;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы