AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ItemCount bei OleVariant

Ein Thema von bundy · begonnen am 29. Sep 2007 · letzter Beitrag vom 29. Sep 2007
Antwort Antwort
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#1

ItemCount bei OleVariant

  Alt 29. Sep 2007, 08:58
Einen wunderschönen Guten Morgen DP

Ich probiere schon seit gästern am Abend, verzweifelnd den Linecount eines OleVariants abzufragen.

Es handelt sich glaubich um einen 2 dimensionalen OleVariant.

Ich arbeite mit der Komponente von Map&Guide.
Und mit der Procedure GetRouteList kann mann die Routen Liste abfragen
GetRouteList(level:TOleEnum;out Result:OleVariant);
Die Code dazu lautet wie folgt:
Delphi-Quellcode:
procedure TForm1.OnRouteCalculated(Sender: TObject; success: WordBool);
var
  nDistance,nDrivingTimeFrom :integer;
  RouteList:OleVariant;

begin
 if success then
    begin
      MGCMapControl1.Map.Routing.GetDistanceAndDuration(nDistance,nDrivingTimeFrom);
      MGCMapControl1.Map.Routing.GetRouteList(erldDetailedList,routeList);

    end
    else
    begin
     ShowMessage ('route calculation failed');
    end;

end;
Bis an diese Stelle funktioniert alles einwandfrei.
Ich habe also jetzt die Routinglist in meiner Variable routeList vom Type OleVariant gespeichert.

Aber wie bekomme ich denn jetzt meine routeList in ein Memo auf meinem Form.
ich hab das mal so gemacht:
Delphi-Quellcode:
i:=0;
while RouteList[0,i] <> 'then
  begin
  cxMemo1.lines.add(Routlist[0,i]);
  inc(i);
  end;
Jetzt liest er die Routinglist ein, aber ich bekomme immer einen Fehler am Schluss, das Der sichere Index auserhalb des zulässigen bereiches liegt.
Kann ich diesen Index max wert nicht irgendwie abfragen , um einen genau definierten loop zu erzeugen?
hab schon high(Routlist) probiert, SizeOf , Lenght , usw... hab es aber leider nicht hinbekommen.

Bitte bitte um hilfe.

lg
bundy
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#2

Re: ItemCount bei OleVariant

  Alt 29. Sep 2007, 09:11
wenn du mit einem leeren string vergleichst dann typcastest du doch schon von olevariant auf string.
wenn dein olevariant aber empty oder null ist dann knallt es.
du solltest also auf empty oder null prüfen. bei olevariant heisst es glaube unassigned.

bei variant ist es varEmpty oder varNull
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#3

Re: ItemCount bei OleVariant

  Alt 29. Sep 2007, 09:27
hmmm....

so gehts nicht
Delphi-Quellcode:
 while RouteList[0,i] <> varEmpty do
  begin
  cxMemo1.lines.add(Routelist[0,i]);
  inc(i);
  end;
so will er das auch nicht

Delphi-Quellcode:
 while RouteList[0,i] <> Unassigned do
  begin
  cxMemo1.lines.add(Routelist[0,i]);
  inc(i);
  end;
ich glaube das das nichts mit dem wert zu tun hat, sondern mit der abfrage des Wertes "while RouteList[0,i]"

Am Ende der Routlist angenommen sie hat 50 Lines das heisst i=50 ist alles noch in Ordung, aber jetzt frag ich ab RouteList[0,51] und dieser Wert liegt ausserhalb, deswegen kracht es.

Aber wie kann ich das umgehen ?
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#4

Re: ItemCount bei OleVariant

  Alt 29. Sep 2007, 10:02
Nach langem suchen hab ich jetzt.
Delphi-Quellcode:

 for i := VarArrayLowBound(routeList, 2) to VarArrayHighBound(routeList, 2) do
  begin
  cxMemo1.lines.add(Routelist[0,i]+' | '+Routelist[1,i]+' | '+Routelist[2,i]+' | '+Routelist[3,i]+' | '+Routelist[4,i]+' | '+Routelist[5,i]);

  end;
so funktionierts
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz