来自备忘录的TDirectionsResult

时间:2013-05-14 16:19:14

标签: delphi gmlib

使用下面的代码,我试图将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]不存在。

非常感谢帮助纠正。

1 个答案:

答案 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事件上进行的。

问候。