MS MapPoint

Rund um MS-MapPoint

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2548
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

MS MapPoint

Beitrag von Wolfgang Ciriack » Sa, 27. Okt 2007 11:06

Ich habe die Anbindung meines Programms an MS Mappoint implementiert und stoße jetzt auf ein Problem:

Ich lese aus dem Profile folgende Werte aus (funktioniert):

Code: Alles auswählen

local v_liter_st:=oRoute:DriverProfile:FuelConsumptionCity
local v_liter_hw:=oRoute:DriverProfile:FuelConsumptionHighway
local v_preis_km:=oRoute:DriverProfile:DrivingCost
local v_speed_1:=oRoute:DriverProfile:Speed(1)
verändere dann die Werte. Beim Zurückschreiben der Werte

Code: Alles auswählen

   oRoute:DriverProfile:FuelConsumptionCity:=v_liter_st
   oRoute:DriverProfile:FuelConsumptionHighway:=v_liter_hw
   oRoute:DriverProfile:DrivingCost:=v_preis_km
*   oRoute:DriverProfile:Speed(1):=120
   oRoute:DriverProfile:Speed(1) := v_speed_1
bekomme ich nur bei

oRoute:DriverProfile:Speed(1):=120
oder
oRoute:DriverProfile:Speed(1) := v_speed_1

einen Compilerfehler

xbt0231: Invalid lvalue

Kann mir jemand erklären, was da falsch ist oder wie man die Zuweisung des Wertes ändern kann ?
Viele Grüße
Wolfgang

Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 791
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg

Beitrag von Lewi » Sa, 27. Okt 2007 12:02

Ich vermute mal folgendes:

Alle anderen Zuweisungen erfolgen über Member-Variablen. Nach Deinem Code
"Route:DriverProfile:Speed(1)"
handet es hier sich um eine Methode!

Vielleicht funktioniert es so:
Route:DriverProfile:Speed(1, 120)

Gruß, Olaf

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2548
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von Wolfgang Ciriack » Sa, 27. Okt 2007 12:21

Hallo Olaf,
Speed ist keine Methode, sondern auch eine Eigenschaft des Objekts.
Druch den Parameter in Klammern wird der Straßentyp definiert, d.h.
ich kann so wie beim Auslesen der Werte Speed(1) bis Speed(5) Werte zuweisen.
Im Beispiel in der MS Beschreibung steht auch z.B.

objRoute.DriverProfile.Speed(geoRoadLimitedAccess) = 55

wobei der Wert hier geoRoadLimitedAccess=2 ist.

Bei deinem Vorschlag Route:DriverProfile:Speed(1, 120)
kommt die Fehlermeldung "unzulässige Parameter".

Trotzdem vielen Dank.
Viele Grüße
Wolfgang

Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 791
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg

Beitrag von Lewi » Sa, 27. Okt 2007 12:46

Hallo Wolgang,
ich bleibe dabei: :speed( xValue) ist nach Deinem Code eine Methode (also eine "Funktion", die auf Basis von xValue einen Wert zurück gibt) und keine Member-Variable.

Wahrscheinlich gibt es für die Zuweisung des Strassetyps eine gesonderte Methode.

Gruß, Olaf

Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 791
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg

Beitrag von Lewi » Sa, 27. Okt 2007 12:51

Hello again,
Tom hatte das gleiche Problem hat folgende Lösung gepostet:

Code: Alles auswählen

oMap:activeRoute:DriverProfile:SetProperty("Speed",1,nSpeed)
Gruß, Olaf

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2548
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von Wolfgang Ciriack » Sa, 27. Okt 2007 13:45

Prima, vielen Dank an Olaf und Tom, damit klappt.
Viele Grüße
Wolfgang

Antworten