使用下面的代码,我试图将DirectionsResult重新加载回TGMDirections。
procedure Form2.Button2Click(Sender: TObject);
var
DR: TDirectionsResult;
i: Integer;
begin
DR:= TDirectionsResult.Create(Form1.FDirection, 0);
DR.XMLData.BeginUpdate;
for i:= 0 to Memo1.Lines.Count - 1 do
begin
DR.XMLData.Append(Memo1.Lines[i]);
end;
DR.XMLData.EndUpdate;
ShowMessage(Form1.FDirection.DirectionsResult[0].Routes[0].Leg[0].EndAddress);
end;
所有看起来都很好,直到我得到一个List out of bounds消息的ShowMessage。 我认为DR尚未创建或备忘录未加载到DirectionsResult中。
进一步调整已确认DirectionsResult [0]不存在。
非常感谢帮助纠正。
答案 0 :(得分:1)
您不能以编程方式向DirectionsResult数组添加TDirectionsResult,您需要从TGMDirections对象调用Execute方法。
但是你可以做这样的事情
procedure TForm1.Button1Click(Sender: TObject);
var
DR: TDirectionsResult;
begin
DR:= TDirectionsResult.Create(GMDirection1, 1);
DR.XMLData.Text := Memo1.Lines.Text;
ShowMessage(DR.Routes[0].Leg[0].EndAddress);
end;
也就是说,您可以毫无问题地使用对象,并且可以访问所有属性和方法。
注意XMLData和Memo.Lines之间的分配,不要逐行分配,因为XML的控制是在XMLData的OnChange事件上进行的。
问候。