2013-05-14 120 views
1

下面的代碼中,我嘗試將DirectionsResult重新加載回TGMDirections。來自備忘錄的TDirectionsResult

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; 

一切似乎好,直到ShowMessage我得到一個列出界限消息。 我認爲DR尚未創建或備忘錄尚未加載到DirectionsResult中。

進一步的適應已確認DirectionsResult [0]不存在。

幫助糾正將不勝感激。

+0

@NickHodges它是gmlibrary的一部分:https://code.google.com/p/gmlibrary/ – bummi 2013-05-14 17:16:02

回答

1

您無法以編程方式將TDirectionsResult添加到DirectionsResult數組,您需要從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事件上進行的,所以不要逐行分配。

問候。

+0

謝謝cadetill。我的項目運行良好。只需調整並試用您的圖書館。版本1.0.0工作就像對待我。非常感謝過去幾個月的電子郵件。 – GreenMeanie 2013-05-15 03:41:13

+0

剛剛嘗試過你的執行方法,出色地工作。再次感謝。 – GreenMeanie 2013-05-15 03:53:02