Announcement

Collapse
No announcement yet.

2 Zeile c++ in Delphi konvertieren (AttachDispatch)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2 Zeile c++ in Delphi konvertieren (AttachDispatch)

    Wie lassen siech die zwei Zeilen in Delphi formulieren?
    <PRE>
    IiwAddress iwAddress;
    iwAddress.AttachDispatch( iwGeoAddress.GetAddress(), FALSE );
    </PRE>

    CreateDispatch habe ich bereits konvertiert.
    In Delphi geht es so:
    <PRE>
    var
    iwGeoPoint: IiwGeoPoint;
    begin
    iwGeoPoint := CreateComObject(CLASS_iwGeoPoint) as IiwGeoPoint;
    </PRE>

    Den restlichen Code habe ich soweit verstanden und kommentiert.
    Es geht nur noch um das AttachDispatch (etwa in der mitte):
    (Sorry für die nicht funktionierden CodeTags)

    <PRE>
    const long addressNum = 2;
    //Anlegen von drei array of String für die Lon, Lat-Position und für die Straßen

    CString xCoords[addressNum] = {"-256781", "-248770"};
    CString yCoords[addressNum] = {"5687", "-2340"};
    CString streetNames[addressNum] = {"Karl-Heinz-Strße", "Frankfurter Straße"};

    // Erzeuge ein ComObject welches später mit den Adress ComObjecten gefült wird

    IiwGeoAddresses iwGeoAddresses;
    iwGeoAddresses.CreateDispatch("IwGeoObjects.iwGeoA ddresses.1");

    for ( int iAddress = 0; iAddress < addressNum; iAddress++ )

    //Erzeuge für jede Adresse eine GeoAdress ComObject (beinhaltet die Geokodierung der Adresse)
    IiwGeoAddress iwGeoAddress;
    iwGeoAddress.CreateDispatch("IwGeoObjects.iwGeoAdd ress.1" );

    //Ich vermute: Ableiten eines Adresse-ComObjects aus dem GeoAdresse-ComObject
    IiwAddress iwAddress;
    iwAddress.AttachDispatch( iwGeoAddress.GetAddress(), FALSE );

    //Ich vermute: Ableiten eines GeoPoints-ComObjects aus dem GeoAdresse-ComObject
    IiwGeoPoints iwGeoPoints;
    iwGeoPoints.AttachDispatch( iwGeoAddress.GeoPoints(), FALSE );

    //Erzeuge für jede Adresse eine GeoPoint ComObject (nur die Punkte für die Darstellung auf der Karte)
    IiwGeoPoint iwGeoPoint;
    iwGeoPoint.CreateDispatch( "IwGeoObjects.iwGeoPoint.1" );

    //Setze die Beschriftungen der Straße unterhalb vom Punkt auf der Karte
    BOOL encoded = FALSE;
    iwGeoPoint.SetPointString( xCoords[iAddress], yCoords[iAddress], "LCC_GERMANY", encoded );

    //GeoPoints ist eine Liste für GeoPoint ComObjects
    iwGeoPoints.AddGeoPoints( iwGeoPoint );

    //GeoAddresses ist eine Liste für GeoAddress ComObjects
    iwGeoAddresses.AddGeoAddrress( iwGeoAddress );
    }

    </PRE>

    Gruß
    Kostas & Gitta

  • #2
    Problem endlich gelöst!!!

    Nachdem ich über tausend Ecken erfahren habe was den AttachDispatch
    macht, war die Antwort leicht:

    <PRE>

    // C++ Code
    IiwAdress iwAdress;
    iwAdress.AttachDispatch( iwGeoAdress.GetAdress(), FALSE );

    //Delphi code
    iwAdress := iwGeoAdress.GetAdress;

    </PRE>

    Ein Herliches DANKE an alle!!

    Comment

    Working...
    X