Einzelnen Beitrag anzeigen

HJay

Registriert seit: 7. Dez 2009
172 Beiträge
 
Delphi XE7 Enterprise
 
#323

AW: Google Maps über COM (Component Object Model)

  Alt 19. Nov 2012, 16:25
Mir gelingt es nicht, eine Marker-Click-Routine zu setzen. Der Compiler meckert:

[DCC Fehler] GoogleMapUnit.pas(85): E2010 Inkompatible Typen: 'TProc<System.TObject,HTMLObjects.TEvent>' und 'Procedure of object'

Die Deklaration lautet:

Code:
uses  ...
gmAPI, gmMap, gmBase, gmOverlaysMarker, gmEvents;

...
TGoogleMap = class(TObject)
private
procedure MarkerClick(Sender: TObject; Event: gmEvents.TEvent);
...
end;
Dann weise ich die Click-Prozedur wie folgt zu:

Code:
procedure TGoogleMap.CreateMarker(AWpt: TWpt);
  var MarkerOptions : TMarkerOptions;
      Marker       : TMarker;
begin
  with Script(WebBrowser) do begin
    MarkerOptions := TMarkerOptions.Create;
    with MarkerOptions do begin
      Position := New(Google.Maps.LatLng(AWpt.Lat, AWpt.Lon));
      Map     := Maps[0];
      Title   := 'Test;
    end;
    Marker := New(Google.Maps.Marker(MarkerOptions));
    Marker.OnClick := MarkerClick; // <<< Compiler-Error
    MarkerOptions.Free;
  end;
end;

procedure TGoogleMap.MarkerClick(Sender: TObject; Event: gmEvents.TEvent);
begin
  with Script(WebBrowser) do begin
    if Maps[0].GetZoom=8 then Maps[0].SetZoom(4) else Maps[0].SetZoom(8);
    Maps[0].SetCenter(TMarker(Sender).GetPosition);
  end;
end;
Woran kann das liegen? Ich habe doch die Unit gmEvents.TEvent extra angegeben. Hm, ich bin ratlos.
  Mit Zitat antworten Zitat