OnMarkerClick Error with Modal Dialog

Hi

I am trying to create a windows FMX app with the trial version of TTMSFMXWebGMaps. I can successfully programmatically add markers to the map. I have added an OnMarkerClick event handler to the map in which I want to display a modal child window.  All fairly standard Delphi stuff :)

The problem is when the modal child form displays the content of the map display on the main form is replaced by the text "blank{5C5E4C6F-855F-4744-8D33-42AFE5A06F98}"  Note that the GUID part changes depending on which marker I click.

What do I need to do to avoid this ?

BTW, loving the component, not sure whether to buy the full suite or just the GMaps one.

Relevant code snippet is


procedure TMainForm.TMSFMXWebGMaps1MarkerClick(Sender: TObject; MarkerTitle: string; IdMarker: Integer;  Latitude, Longitude: Double);
var
  Details: TfrmDetails;
begin
  Details := TfrmDetails.Create(nil);
  try
    Details.ShowModal;
  finally
    Details.Free;
  end;
end;



I've tried a work around which is to use a minimised TPanel component and adjust its size when a map marker is clicked so the panel can show the extended details for the marker. These details are retrieved from my database.  This work ok.

However when I use a TComboBox control on the panel - if I click on the combobox I get the same error showing on the map.

Here is the details panel and map before selecting the combobox.



Here is the same part of the screen after clicking the combobox - the map has dssappeared and been replaced by the error message.



I need the user to be able to select from a list of values. Is there another work around ?

Thanks

David

Pasted images seem to have been removed from my second post.The problem is very real though.

OK, I attached the debug console and have inspected the DOM.  It looks
like what is dispayed is the path for the browser window's Location
property i.e. the full URL before and after clicking on the combobox is <span -="">"about:blank{<span -="">5C5E4C6F-855F-4744-8D33-42AFE5A06F98}"

Hence it appears the google map display is sitting on top of a blank page.

So if I add a button and in its handler add the following code snippet


TMSFMXWebGMaps1.Navigate('https://maps.google.com/maps?ll=-43.477285,172.63791&z=12&t=m&hl=en-NZ&gl=US&mapclient=apiv3');


to
get the embedded browser to naviagte then the map display comes back.
However this time I get the full web version of the google map including
all of the map controls, and a warning about IE compatibility mode.

This has not fixed my problem but may cast some light on what is causing it and how it can be fixed.

I've done a bit more investigation. 

I can easily replicate the combobox problem by dropping a TComboBox control onto the grey panel in the FMX routing demo, then adding a couple of items in via the Object Inspector.  Click F9 to run and when the combobox is clicked the "blank{GUID}" error occurs.

This happens in the FMX routing demo running under 10.1 and 10.2. 
It does NOT occur in the FMX demo running under XE8, nor the VCL version running under 10.2.

Hope this info helps to isolate the root cause of the problem.

I've put together a simple FMX Win32 app to demonstrate the problem. 
The app works fine in XE8 and 10 Seattle. 
It
breaks in 10.1 Berlin and 10.2 Tokyo, so something got changed either
in the code base of the Maps component, or the FMX framework.  Without
access to the Maps source I cannot tell.

How do I log this as a bug at TMS ?

The code is as follows


program HeaderFooterApplication;

uses
  System.StartUpCopy,
  FMX.Forms,
  HeaderFooterTemplate in 'HeaderFooterTemplate.pas' {HeaderFooterForm};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(THeaderFooterForm, HeaderFooterForm);
  Application.Run;
end.


The main unit


unit HeaderFooterTemplate;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
  FMX.ListBox, FMX.TMSWebGMapsWebBrowser, FMX.TMSWebGMaps,
  FMX.Controls.Presentation;

type
  THeaderFooterForm = class(TForm)
    Header: TToolBar;
    Footer: TToolBar;
    HeaderLabel: TLabel;
    TMSFMXWebGMaps1: TTMSFMXWebGMaps;
    ComboBox1: TComboBox;
  private
  public
  end;

var
  HeaderFooterForm: THeaderFooterForm;

implementation
{$R *.fmx}
end.



And the dfm file


object HeaderFooterForm: THeaderFooterForm
  Left = 0
  Top = 0
  Caption = 'Header Footer Form'
  ClientHeight = 567
  ClientWidth = 384
  FormFactor.Width = 1440
  FormFactor.Height = 900
  FormFactor.Devices = [Desktop]
  DesignerMasterStyle = 0
  object Header: TToolBar
    Size.Width = 384.000000000000000000
    Size.Height = 48.000000000000000000
    Size.PlatformDefault = False
    TabOrder = 0
    object HeaderLabel: TLabel
      Align = Contents
      Size.Width = 384.000000000000000000
      Size.Height = 48.000000000000000000
      Size.PlatformDefault = False
      StyleLookup = 'toollabel'
      TextSettings.HorzAlign = Center
      Text = 'Title'
    end
  end
  object Footer: TToolBar
    Align = Bottom
    Position.Y = 519.000000000000000000
    Size.Width = 384.000000000000000000
    Size.Height = 48.000000000000000000
    Size.PlatformDefault = False
    StyleLookup = 'bottomtoolbar'
    TabOrder = 1
    object TMSFMXWebGMaps1: TTMSFMXWebGMaps
      Position.X = 8.000000000000000000
      Position.Y = -464.000000000000000000
      Version = '2.8.0.2'
      Size.Width = 361.000000000000000000
      Size.Height = 441.000000000000000000
      Size.PlatformDefault = False
      Clusters = <>
      Markers = <>
      Polylines = <>
      Polygons = <>
      Directions = <>
      MapOptions.DefaultLatitude = 48.859040000000000000
      MapOptions.DefaultLongitude = 2.294297000000000000
      Routing.PolylineOptions.Icons = <>
      StreetViewOptions.DefaultLatitude = 48.859040000000000000
      StreetViewOptions.DefaultLongitude = 2.294297000000000000
      PolygonLabel.Font.Family = 'Arial'
      TabOrder = 0
    end
    object ComboBox1: TComboBox
      Items.Strings = (
        'ABC'
        'DEF')
      Position.X = 64.000000000000000000
      Position.Y = 8.000000000000000000
      Size.Width = 217.000000000000000000
      Size.Height = 22.000000000000000000
      Size.PlatformDefault = False
      TabOrder = 1
    end
  end
end


I forgot to say, to trigger the bug - run the app and then click on the combobox.

Hi, 


We have further investigated this here, but the issue with the combobox dropdown resetting the map is an FMX issue. The browser is internally mapped on TWebBrowser, which re-initializes each time a child form, frame or popup is created. There is currently no workaround for this issue. More information can be found at the following QC report:

https://quality.embarcadero.com/browse/RSP-16088

Thx for the verification. I have added a comment to the EMBO bug tracker.