ActiveX und Array

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten
Michael
Rookie
Rookie
Beiträge: 18
Registriert: Mo, 27. Feb 2006 12:15
Wohnort: Schweiz

ActiveX und Array

Beitrag von Michael »

Hallo,
Habe ein Problem mit dem ActiveX. Wenn ich ein Vector/Liste abrufen will mit Name[Index] kommt es zu einem Fehler:
Beispiel (OCR mit Windows Image)

Code: Alles auswählen

  //Objekt erstellen
  _MODIDocument := ActiveXObject():create( "MODI.Document" )
  _ModiDocument:Invoke("Create",0,1,"c:\test.bmp")
  //OCR starten
  _ModiDocument:callMethod("OCR", 2048, .T.,.T. )

  // iterating though the document's structure doing some statistic.
  statistic = ""
  // Für jedes Bild werte auslesen
  FOR I := 1 TO  _MODIDocument:Images.Count)
     Image = _MODIDocument:Images[i]  // <--Error
  NEXT
Jemand eine Idee wie man auf die einzelnen Werte von einer Liste kommt?
_MODIDocument:Images:Count -> 1
_MODIDocument:Images[1] -> Error
_MODIDocument:Images[0] -> Error

Error = Parameter hat falschen Typ

Grüsse und Danke
Michael Gfeller
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: ActiveX und Array

Beitrag von brandelh »

Michael hat geschrieben:

Code: Alles auswählen

  FOR I := 1 TO  _MODIDocument:Images.Count)
     Image = _MODIDocument:Images[i]  // <--Error
  NEXT
Ich habe zwar - noch - keine Ahnung von ActiveX; aber

Images.Count) -> die letzte Klammer ist bestimmt ein Tippfehler ...
Images.Count -> ist ein Object-Zugriff bei VB. Images ist also ein Object.
Michael hat geschrieben:

Code: Alles auswählen

_MODIDocument:Images:Count     -> 1
_MODIDocument:Images[1] -> Error
_MODIDocument:Images[0] -> Error
_MODIDocument:Images:Count greift auf das Object Images zu !
_MODIDocument:Images[1] -> Error

Images ist KEIN Xbase++ Array. Soweit ich mich erinnern kann, war
bei VB oft ein Images als Anzahl der Image(...) definiert.
_MODIDocument:Image[1] -> geht das ?
Gruß
Hubert
Rolf
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 258
Registriert: Do, 27. Apr 2006 12:28
Wohnort: Görlitz

Beitrag von Rolf »

Hallo Michael

welchen Typ hat den _MODIDocument:Images[1] :?:
siehe xppError.log oder über Valtype( _MODIDocument:Images[1] )

Es könnte ja auch ein Array zurückgegeben werden

Grüße Rolf
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Das sehe ich auch so. Images ist kein Array, sondern ein Objekt. Hat es möglicherweise noch eine :Items-Instanz oder ähnliches?
Herzlich,
Tom
Michael
Rookie
Rookie
Beiträge: 18
Registriert: Mo, 27. Feb 2006 12:15
Wohnort: Schweiz

Beitrag von Michael »

Ich komme etwas aus dem cSharp Umgebung :)
_MODIDocument:Images[1] meinte ich sei eine Liste bzw Vector.

gleiches Beispiel aus C#. Dachte das geht (etwa) gleich in Xbase++

Code: Alles auswählen

for (int i = 0 ; i < _MODIDocument.Images.Count; i++)
{
	MODI.Image image = (MODI.Image)_MODIDocument.Images[i]; <---Hier der Zugriff auf die Liste
	MODI.Layout layout = image.Layout;
	<-Schnitt-->
}
Michael
Rookie
Rookie
Beiträge: 18
Registriert: Mo, 27. Feb 2006 12:15
Wohnort: Schweiz

Beitrag von Michael »

Tom hat geschrieben:Das sehe ich auch so. Images ist kein Array, sondern ein Objekt. Hat es möglicherweise noch eine :Items-Instanz oder ähnliches?
Hm, habs mal versucht.
ModiDocument:Images:Item(i-1) // Fängt bei 0 an und nicht bei 1
Ist aber nicht dokumentiert.

Danke! :)
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: ActiveX und Array

Beitrag von AUGE_OHR »

hi,
Michael hat geschrieben:Hallo,
Habe ein Problem mit dem ActiveX. Wenn ich ein Vector/Liste abrufen will mit Name[Index] kommt es zu einem Fehler:
Beispiel (OCR mit Windows Image)
das du ein Object zurück bekommst wurde ja schon erwähnt.

Es ist aber auch evtl. Möglich das v1.9.33x noch keine Arrays
zurück geben kann. Zumindest kann man kein Array mit Daten
übergeben.

siehe Alaska-Software Newsgroup public.xbase++.activex vom
8. März 2006 "Calling ActiveX method that requires array as argument"
und die Antwort von Andreas Herdt.

gruss by OHR
Jimmy
Antworten