Zitat von
Simon1988:
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 ?!
Ja, kann sein.
Das Problem ist, dass mir hier nicht ganz klar ist, warum der Code da überhaupt funktioniert. Du verwendest hier Konstruktoren, die nie inherited create aufrufen. Wenn das also dein Delphi-Code ist, solltest du schon an der Stelle ein Problem haben.
Ansonsten ist mir auch nicht klar, wo die Variable obj herkommt. Die verwendest du hier relativ global, obwohl zwei völlig verschiedene Instanzen hier abgelegt werden sollen. Ob sie nicht zwischen den zwei Schritten noch an einer anderen Stelle verändert wird, kann ich so nicht sehen / sagen. Besser ist es, wenn du hier mit einer eigenen Variable arbeitest.
An sich verwirrt mich auch etwas der Aufbau deines Programms. Dein JDVectorlayer benötigt ein JDShapeFileVector, soweit so klar. Jetzt würde ich sagen, dass JDVectorLayer also von der Existenz eines JDShapeFileVector wissen muss, nicht umgekehrt. Folglich sollte also JDShapeFileVector sich eine Instanz von JDShapeFileVector besorgen und diese verwenden...
Also es wirkt auf micht wirklich etwas unglücklich modelliert.
Worin jetzt der eigentliche Fehelr besteht kann ich so aber auch nicht sagen (sehe ihn nicht). Wie gesagt, globale Instanz von obj wäre ganz schlecht.