List&Label 12 OCX Control

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten
Tobi
Rookie
Rookie
Beiträge: 5
Registriert: Fr, 13. Okt 2006 16:42

List&Label 12 OCX Control

Beitrag von Tobi »

Hallo!

Hat schonmal jemand versucht, List&Label via ActiveX zu verwenden?

Bei folgendem Code:

Code: Alles auswählen

oLL := CreateObject( "L12.List-Label12_Ctrl_32.1" )

IF NIL == oLL
    ? "No LL ActiveX-Control found"
    RETURN
ENDIF

oLL:LicensingInfo := "xxxxxxx"

...passiert lediglich das:

Code: Alles auswählen

oError:args         :
          -> VALTYPE: C VALUE: LicensingInfo
          -> VALTYPE: C VALUE: xxxxxxx
oError:canDefault   : J
oError:canRetry     : N
oError:canSubstitute: J
oError:cargo        : NIL
oError:description  : Schwerwiegender Fehler

oError:filename     : NIL
oError:genCode      : NIL
oError:operation    : LicensingInfo
oError:osCode       :          -2147418113
oError:severity     :          2
oError:subCode      :       6500
oError:subSystem    : Automation
oError:thread       :          1
oError:tries        : NIL
Der Fehler tritt erst bei Aufruf der oLL:LicensingInfo -Eigenschaft auf (egal ob lesend oder schreibend). Andere Methodenaufrufe des ActiveX-Objekts führen zum selben Fehler. Da es mit Delphi anstandslos funktioniert, gehe ich davon aus, dass das List&Label-OCX korrekt installiert ist.

Gruß,
Tobias
Tobi
Rookie
Rookie
Beiträge: 5
Registriert: Fr, 13. Okt 2006 16:42

Beitrag von Tobi »

Hat niemand eine Idee? Mit dem List&Label OCX ließen sich einige nette Sachen, wie z.b. eigene Designer-Funktionen, realisieren, die mit der reinen DLL-API nicht möglich sind.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Tobi.

Ich nutzte L&L intensivst, aber nur in der DLL-Fassung. Ich werde trotzdem mal versuchen, herauszubekommen, was das Problem sein könnte. Montag spätestens.
Herzlich,
Tom
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: List&Label 12 OCX Control

Beitrag von AUGE_OHR »

hi,
Tobi hat geschrieben:

Code: Alles auswählen

IF NIL == oLL
es ist auf jeden Fall ein "Automation Error" (6500)
vielleicht sollte du mal es so versuchen :

Code: Alles auswählen

IF oLL == NIL
gruss by OHR
Jimmy
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Tobi.

Zwei Vorschläge. Erstens:

Code: Alles auswählen

oLL := oLL:dynamicCast(ActiveXObject())
gleich nach "CreateObject" (siehe Doku).

Zweitens. Ich habe die AX-Doku für L&L nicht vor mir, aber eigentlich wird der LicensingString - jedenfalls in der DLL-Variante - über die Funktion (bzw. Methode) LlSetOptionString gesetzt. Möglich, daß es bei AX anders ist, aber in der DLL-Version sieht das so aus:

Code: Alles auswählen

LlSetOptionString(-1,LL_OPTIONSTR_LICENSINGINFO,cMyLicenseString)
Herzlich,
Tom
Tobi
Rookie
Rookie
Beiträge: 5
Registriert: Fr, 13. Okt 2006 16:42

Beitrag von Tobi »

@Jimmy: Der Fehler kommt ja erst beim Zugriff auf oLL:LicensingInfo oder jede andere Methode des ActiveX-Objekts. Ob nun (NIL == oLL) oder (oLL == NIL) sollte auch bei so einem Exoten wie XBase++ keinen Unterschied machen. Aber man weiß ja nie. Haben's trotzdem probiert - ohne Erfolg. oLL ist aber auf jeden Fall != NIL, also wurde eine ActiveX-(Proxy)-Instanz erzeugt

@Tom: Auch der Cast nach ActiveXObject bringt nichts. Der Lizenzstring wird in der ActiveX-Variante über eine Property gesetzt (wobei es dann allerdings zu obigem Fehler kommt). In Delphi ist das auch kein Problem. Ich kann das ActiveX-Objekt instanzieren und dann ganz normal die LicensingProperty setzen.

Auch mit dem ComView (http://www.japheth.de) kann ich das ActiveXObjekt instanzieren und dann die Property setzen. Allerdings habe ich da festgestellt, dass ich direkt nach dem Erstellen der Instanz noch keinen Zugriff auf die Member des Objekts habe (Fehler E_UNEXPECTED - 8000FFFF - also scheinbar der selbe OS-Fehlercode wie bei den XBase++-Versuchen). Wähle ich im COMView für die erstelle Instanz "View", so kann auf einmal auf alle Methoden und Properties des ActiveX-Objekts zugeriffen werden.


Fragt sich jetzt nur, was genau bei "View" im ComView-Tool passiert und wie man das in XBase++ hinbekommt. Wir haben schon versucht, List&Label als ActiveX-GUI-Control zu instanzieren, aber das wollte nicht so recht funktionieren.

Tobias
Antworten