Seite 1 von 1
ActiveX und Array
Verfasst: Do, 11. Mai 2006 14:38
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
Re: ActiveX und Array
Verfasst: Do, 11. Mai 2006 15:04
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 Image
s als Anzahl der Image(...) definiert.
_MODIDocument:Image[1] -> geht das ?
Verfasst: Do, 11. Mai 2006 15:05
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
Verfasst: Do, 11. Mai 2006 15:08
von Tom
Das sehe ich auch so. Images ist kein Array, sondern ein Objekt. Hat es möglicherweise noch eine :Items-Instanz oder ähnliches?
Verfasst: Do, 11. Mai 2006 15:30
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-->
}
Verfasst: Do, 11. Mai 2006 15:41
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!
Re: ActiveX und Array
Verfasst: Do, 11. Mai 2006 15:41
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