Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 2 Zeilen C++ Code in Delphi umwandeln (AttachDispatch) (https://www.delphipraxis.net/31851-2-zeilen-c-code-delphi-umwandeln-attachdispatch.html)

gitta 14. Okt 2004 19:08


2 Zeilen C++ Code in Delphi umwandeln (AttachDispatch)
 
Hallo Zusammen,

wie lassen sich die zwei Zeilen in Delphi konvertieren?

{MS Visula C++ 6.0}
IiwAdress iwAdress;
iwAdress.AttachDispatch( iwGeoAdress.GetAdress(), FALSE );
{Delphi}
???????????????????

CreateDispatch habe ich so kovertiert:
Code:
{MS Visula C++ 6.0} 
IiwGeoPoint iwGeoPoint;
iwGeoPoint.CreateDispatch("IwGeoObjects.iwGeoPoint.1");

 
{Delphi} 
var
iwGeoPoint: IiwGeoPoint;
begin
iwGeoPoint := CreateComObject(CLASS_iwGeoPoint) as IiwGeoPoint;
iwGeoPoint := nil;
Hat jemand eine Idee?

Gruß Gitta.

Sprint 14. Okt 2004 21:10

Re: 2 Zeilen C++ Code in Delphi umwandeln (AttachDispatch)
 
Vielleicht sollten sich alle Delphi Foren zusammen tun, dann brauche ich nicht alles doppelt und dreifach lesen.

gitta 14. Okt 2004 21:34

Re: 2 Zeilen C++ Code in Delphi umwandeln (AttachDispatch)
 
Hallo Sprint,

tut mir schrecklich leid, mir wäre es wirklich auch lieber
wenn alle Foren zu einem Mammut-Forum zusammen gefaßt würden.
Dann würde man deutlich mehr Fragen beantwortet bekommen
und umgekehrt.

Ich kann leider kein C++ und versuche es eben über die Foren.
Anscheinend ist meine Frage nicht so Einfach zu beantworten.
Ich brauche leider die Antwort, irgendwie.

Bitte nicht böse sein.

Gruß Gitta

Nicolai1234 14. Okt 2004 23:26

Re: 2 Zeilen C++ Code in Delphi umwandeln (AttachDispatch)
 
Vielleicht würde es helfen, was denn bei diesem Codestück C++ passieren soll, denn dann könnten auch die helfen, die kein C++ können!

gitta 15. Okt 2004 09:29

Re: 2 Zeilen C++ Code in Delphi umwandeln (AttachDispatch)
 
Zitat:

Zitat von Nicolai1605
Vielleicht würde es helfen, was denn bei diesem Codestück C++ passieren soll, denn dann könnten auch die helfen, die kein C++ können!

Gerne, es sind nur ein paar Zeilen die ich der Übersichtshalber
nicht anhängen wollte. Womöglich war das ein Fehler.
Den Code habe ich soweit verstanden und kommentiert bis
auf die zwei stellen mit den AttachDispatch.(etwa in der mitte)

Das ganze ist eine Navigations-Komponentensammling in C++
als ActiveX geschriben. Die Docu ist sehr schlecht, und es
git nur Beispielcode für C++. Eigentlich müßte man nur
wissen was "AttachDispatch" macht.


Delphi-Quellcode:
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.iwGeoAddresses.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.iwGeoAddress.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 );
}
Hoffentlich hilft das weiter.

Herlichen Dank an alle die mich hir unterschtützen wollen.

Gruß Gitta

gitta 15. Okt 2004 20:53

Re: 2 Zeilen C++ Code in Delphi umwandeln (AttachDispatch)
 
Problem endlich gelöst!!!

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

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

//Delphi code
iwAdress := iwGeoAdress.GetAdress;
Ein Herliches DANKE an alle!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz