Hallo Michael,
ist angekommen und auch schon angeschaut.
Das Problem liegt bei der
VCL bzw. dem
TWebBrowser: Solange dieser nicht sichtbar ist, hat er eine Größe von 0x0 (oder 1x1) Pixeln. Damit liegt das Kartenzentrum (in Deinem Fall (0,0)) in der linken oberen Ecke.
Mein Vorschlag wäre, nur die Karte zu laden, die am Anfang sichtbar ist und alle anderen erst dann, wenn die entsprechende Seite angeklickt wird:
Delphi-Quellcode:
procedure TForm1.PageControl1Change(Sender: TObject);
procedure InitMap(WebBrowser: TWebBrowser);
begin
if Script(WebBrowser)=nil then
with TScript.Create(WebBrowser) do
LoadAPIAsync(Self.InitMap);
end;
begin
if PageControl1.ActivePage=TabSheet1 then InitMap(WebBrowser_T1);
if PageControl1.ActivePage=TabSheet2 then InitMap(WebBrowser_T2); //bzw. Tracker2, da Du das umbenannt hattest
if PageControl1.ActivePage=TabSheet3 then InitMap(WebBrowser_T3);
if PageControl1.ActivePage=TabSheet4 then InitMap(WebBrowser_T4);
if PageControl1.ActivePage=TabSheet5 then InitMap(WebBrowser_T5);
end;
Das würde auch die Startzeit des Programmes spürbar verkürzen, da jetzt nicht mehr alle Karten im
OnShow-Ereignis geladen werden müssen.