AGB  ·  Datenschutz  ·  Impressum  







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

Delphi mit Java komunizieren

Offene Frage von "bucchi"
Ein Thema von Simon1988 · begonnen am 12. Jul 2006 · letzter Beitrag vom 27. Okt 2006
 
Simon1988

Registriert seit: 12. Jul 2006
39 Beiträge
 
#32

Re: Delphi mit Java komunizieren

  Alt 26. Okt 2006, 13:56
so hier nochmal mit Quelltext :

als erstes wird ein Objekt der JavaKlasse ShapeVectorDatasource erzeugt ..
dann will ich einen VectorLayer erzeugen. Der Konstuktor (wie man ja auch sieht) brauch aber nicht einen ShapeVectorblablub, sonder einen VectorDataSource (eben die unterklasse) ..
und da kommt dass das objekt von der Klasse VectorLayer leer ist .. warum auch immer ..

Delphi-Quellcode:
constructor JDShapeFileVector.create(Path :PAnsiChar) ;
 Var JPath : JString;
 begin
  cls := jvm.JniEnv.FindClass('com/gdv/mapbuilder/datasources/shapefile/ShapefileVectorDataSource');
  if cls = nil then
  begin
   ShowMessage('Klasse "ShapefileVectorDataSource" nicht gefunden');
   exit;
  end;
  ConstructorMid := jvm.JniEnv.GetMethodID(cls, '<init>', '(Ljava/lang/String;)V') ;
  if constructorMid = nil then
  begin
   ShowMessage('Konstruktor nicht gefunden') ;
   exit ;
  end;
  JPath := Jvm.JniEnv.StringToJString(Path) ;
  Obj := jvm.JniEnv.NewObject(cls, ConstructorMid,[JPath]);
  if Obj = nil then
   ShowMessage('Fehler beim erzeugen der Instanz');
  VectorLayer := JDVEctorLayer.create(Obj);
 end; {*create ShapeVector}

 destructor JDShapeFileVector.destroy ;
 begin
  Vectorlayer.destroy ;
 end;

 constructor JDVectorLayer.create(ShapeFile : JObject);
 begin
 cls := jvm.JniEnv.FindClass('com/gdv/mapbuilder/layer/MBVectorLayer');
  if cls = nil then
  begin
   ShowMessage('Klasse "MBVectorLayer" nicht gefunden');
   exit;
  end;
  ConstructorMid := jvm.JniEnv.GetMethodID(cls, '<init>', '(Lcom/gdv/mapbuilder/datasources/VectorDataSource;)V');
  if constructorMid = nil then
  begin
   ShowMessage('Konstruktor nicht gefunden') ;
   exit ;
  end;
  Obj := jvm.JniEnv.NewObject(cls, ConstructorMid,[ShapeFile]);
//ShapeFile ist hier eben vom Objekt ShapefileVectorbla und nicht von der verlangten unterklasse VectorDataSource
  if Obj = nil then
   ShowMessage('Fehler beim erzeugen der Instanz: VectorLayer');
 end;
es kommt keine Meldung außer 'Fehler beim erzeugen der Instanz: VectorLayer'
kann es jetzt sein dass das Obj der Klasse Vector leyer trotzdem erzeugt wurde ?!
  Mit Zitat antworten Zitat
 


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 17:59 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