Wie kann man den Text eines GoogleMaps-Controls ändern?
Derzeit lautet der Text zum Beispiel "Text" in Fettdruck und ich möchte je nach Bool-Zustand den Text entweder in normal oder in fett ausgeben.
Derzeit ändert sich beim Click folgendes:
+ vorher: weiße Box mit Rahmen und dem Text "Text"
+ nachher: keine Box mehr, nur noch der Text "XXX"
Wie kann man die weiße Box erhalten und einfach nur '<b>Text</b>' durch 'Text' ohne Fettdruck ersetzen?
Wahrscheinlich greife ich auf das falsche InnerHTML-Objekt zu.
Vielen Dank im voraus!
Code:
procedure TGoogleMap.InitMap(Sender: TObject);
var
MyOptions : TMapOptions;
MyMap : TMap;
AControlDiv : TNode;
AControl : TJScriptObject;
begin
with Script(WebBrowser) do begin
MyOptions := TMapOptions.Create(Script(WebBrowser));
with MyOptions do begin
Zoom := 12;
Center := New(Google.Maps.LatLng(53.250249,9.835209));
MapTypeID := Google.Maps.MapTypeID.Roadmap;
end;
MyMap := New(Google.Maps.Map(MyOptions));
MyMap.OnZoomChanged := MapZoomChanged;
MyMap.OnDragEnd := MapDragEnd;
{ add button control }
AControlDiv := Document.CreateDivNode;
AControl := TJScriptObject.Create;
InitControl(AControlDiv);
MyMap.Controls[Google.Maps.ControlPosition.TopLeft].Push(AControlDiv);
end;
if Assigned(Callback) then Callback(Sender);
end;
procedure TGoogleMap.InitControl(AControlDiv: TNode);
var AControlUI, AControlText: TNode;
begin
with Script(WebBrowser) do begin
AControlDiv.Style.Padding := '5px';
AControlUI := Document.CreateDivNode;
with AControlUI do
begin
with Style do
begin
BackgroundColor :=clWhite;
BorderStyle :='solid';
BorderWidth :='1px';
Cursor :='pointer';
TextAlign :='center';
end;
Title:='a hint to pop up';
end;
AControlDiv.AppendChild(AControlUI);
AControlText := Document.CreateDivNode;
with AControlText do begin
with Style do begin
FontFamily := 'Arial,sans-serif';
FontSize := '12px';
PaddingLeft := '4px';
PaddingRight := '4px';
end;
InnerHTML := '<b>Text</b>';
end;
AControlUI.AppendChild(AControlText);
Google.Maps.Event.AddDomListener(AControlUI, 'click', NewFunction(ControlClick));
end;
end;
procedure TGoogleMap.ControlClick;
begin
with Script(Webbrowser) do Maps[0].Controls[Google.Maps.ControlPosition.TopLeft].Items[0].InnerHTML := 'XXX';
end;