Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / pas2js / 2020-07

Can't determine which overloaded function to call

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

warley camargo

We can not use anonymous addEventListener method this way:

     row := TJSHTMLTableElement(table).rows[i];
     row.addEventListener('click', function(event: TEventListenerEvent): boolean
     begin
     //
     end);
     row.addEventListener('click', procedure(event: TJSEvent)
     begin
     //
     end);

---> Error: Can't determine which overloaded function to call, D:\fpc2js\pas2js-windows-1.5.1\packages\rtl\web.pas(71,31),

ah, to work as expected we have to remove the overloaded method from the Web.pas unit
//--> procedure addEventListener(aname : string; aListener : JSValue); overload;

the second argument "aListener" is a JSValue, the compiler can't determine which overloaded function to call.

Web.pas unit
--------------
TEventListenerEvent = TJSEvent;

  TJSEventHandler = reference to function(Event: TEventListenerEvent): boolean; safecall;
  TJSRawEventHandler = reference to Procedure(Event: TJSEvent); safecall;
  TJSEventTarget = class external name 'EventTarget' (TJSObject)
  public
    procedure addEventListener(aname : string; aListener : TJSEventHandler); overload;
    procedure addEventListener(aname : string; aListener : TJSRawEventHandler); overload;
//    procedure addEventListener(aname : string; aListener : JSValue); overload;
    function dispatchEvent(event : JSValue) : Boolean;
    procedure removeEventListener(aname : string; aListener : TJSEventHandler);
    procedure removeEventListener(aname : string; aListener : TJSRawEventHandler);
//    procedure removeEventListener(aname : string; aListener : JSValue);
----------------

Reply by email