[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt CS4: Ungültiges Objekt für diese Anforderung.

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

CS4: Ungültiges Objekt für diese Anforderung.

flobuc
Beiträge gesamt: 246

7. Okt 2010, 12:02
Beitrag # 1 von 6
Bewertung:
(2471 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

folgende Frage in die Runde:
Mit der Eigenschaft "isValid" kann ja ab CS4 überprüft werden, ob eine Eigenschaft (Property) einen gültigen Wert besitzt.
Gibt es eine ähnliche Funktion um zu überprüfen ob ein Objekt überhaupt eine bestimmte Eigenschaft besitzt.
Hintergrund ist folgender:
Ich greif auf Tabellenzellen zu diese haben z.B. die Eigenschaft "leftEdgeStrokeWeight". Ist die Zelle aber z.B. Teil einer geteilten Zelle, so besitzt die Zelle diese Eigenschaft nicht (Datenbrowser: Ungültiges Objekt für diese Anforderung.). Jeder Zugriff auf diese Eigenschaft wirft dann einen Fehler.
Kann man sowas sauber überprüfen oder muss man hier einen try-catch-Block verwenden?
Vielleicht wurde diese Frage auch schon mal beantwortet, ich konnte aber nichts dergleichen finden.

Gruss


Flo
X

CS4: Ungültiges Objekt für diese Anforderung.

Marc Sidon
Beiträge gesamt: 262

7. Okt 2010, 12:49
Beitrag # 2 von 6
Beitrag ID: #453436
Bewertung:
(2457 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Flo,

ich vermute, dass bei Dir etwas Anderes das Problem ist.
Grundsätzlich hat eine Zelle IMMER die Eigenschaft "leftEdgeStrokeWeight", egal ob sie eine ungeteilte oder eine geteilte Zelle ist.

Ich vermute, dass Du den falschen Pointer hast, wenn Du die Aktion ausführen willst.

Kann es sein, dass Du da so etwas machst wie:

Code
(Ist Fantasiecode, ich meine nur die Art und Weise...) 

cell1.splitHorizontal();
cell1.leftEdgeStrokeWeight := irgendwas;


Gruß,
Marc


als Antwort auf: [#453431]

CS4: Ungültiges Objekt für diese Anforderung.

Martin Fischer
  
Beiträge gesamt: 12714

7. Okt 2010, 12:58
Beitrag # 3 von 6
Beitrag ID: #453439
Bewertung:
(2448 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Florian,

kommst Du mit _cell.hasOwnProperty('leftEdgeStrokeWeight') weiter?

Ansonsten ein Konstrukt wie
Code
var _sw = null; 
_sw = _cell.leftEdgeStrokeWeight;
if (_sw == null)
...



als Antwort auf: [#453431]
(Dieser Beitrag wurde von Martin Fischer am 7. Okt 2010, 13:01 geändert)

CS4: Ungültiges Objekt für diese Anforderung.

flobuc
Beiträge gesamt: 246

7. Okt 2010, 14:42
Beitrag # 4 von 6
Beitrag ID: #453450
Bewertung:
(2424 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

die Aussage
Zitat Grundsätzlich hat eine Zelle IMMER die Eigenschaft "leftEdgeStrokeWeight"

ist glaube ich etwas voreilig.
Ich hab unter http://www.flobuc.de/Tabellen_Beispiel/ mal ein einfaches Beispiel abgelegt, wo das nicht so ist.

Gruss

Flo


als Antwort auf: [#453436]
(Dieser Beitrag wurde von flobuc am 7. Okt 2010, 14:43 geändert)

CS4: Ungültiges Objekt für diese Anforderung.

flobuc
Beiträge gesamt: 246

7. Okt 2010, 14:50
Beitrag # 5 von 6
Beitrag ID: #453451
Bewertung:
(2422 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

leider bringt das auch nichts.
"hasOwnProperty" hab ich auch schon probiert. "currentCell.hasOwnProperty('leftEdgeStrokeWeight')" liefert immer true zurück. Sobald ich aber auf die Eigenschaft 'leftEdgeStrokeWeight' zugreife bekomme ich einen Fehler.

Zitat _sw = _cell.leftEdgeStrokeWeight;

funktioniert auch nicht, da der Aufruf von "leftEdgeStrokeWeight" bereits zu einer Fehlermedung führt.

Schade, dann muss ich doch einen try-catch machen.

Gruss

Flo


als Antwort auf: [#453439]

CS4: Ungültiges Objekt für diese Anforderung.

Marc Sidon
Beiträge gesamt: 262

8. Okt 2010, 11:40
Beitrag # 6 von 6
Beitrag ID: #453534
Bewertung:
(2365 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ flobuc ] die Aussage
Zitat Grundsätzlich hat eine Zelle IMMER die Eigenschaft "leftEdgeStrokeWeight"

ist glaube ich etwas voreilig.
Ich hab unter http://www.flobuc.de/Tabellen_Beispiel/ mal ein einfaches Beispiel abgelegt, wo das nicht so ist.


Hallo Flo,

ich bleibe dabei: JEDE Zelle hat IMMER die Eigenschaft "leftEdgeStrokeWeight" !!! Und dies wird ja sogar von Deiner Prüfung mit "hasOwnProperty" untermauert!

Du kannst Dein Beispiel so umbauen, dass Du, !!! ohne zu prüfen, ob Weight == 0 ist !!!, jeder Zelle eine leftEdgeStrokeWeight zuweist und Du wirst sehen: JEDE Zelle hat IMMER die Eigenschaft "leftEdgeStrokeWeight" !!!

Etwas jedoch, was Dir das Leben schwer macht, ist die Tatsache, dass bei unverbundenen Zellen mit nicht zugewiesener leftStrokeWeight die Prüfung 0 zurück gibt, bei verbundenen Zellen die Prüfung jedoch einen Fehler verursacht, wenn sie keinen linken Rahmen haben. Dies scheint ein Bug zu sein.

Nachvollziehen kann man dies auch in der GUI. Schau Dir eine linke Kante einer unverbundenen Zelle an, dort steht 0pt. Das selbe Feld bei einer verbundenen Zelle ist LEER !!! Schreibst Du einmalig 0pt rein, bekommst Du auch bei der nächsten Ausführung Deines Javascripts eine korrekte 0 zurück.

Du wirst also nicht um eine Try-Catch-Prüfung herum kommen, wenn Du auf leftStrokeWeight == 0 prüfen willst.

Gruß,
Marc Sidon


als Antwort auf: [#453450]
X