oObj := oObj:dynamicCast( ActiveXObject() ) "umkehren" ?

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

oObj := oObj:dynamicCast( ActiveXObject() ) "umkehren" ?

Beitrag von AUGE_OHR »

hi,

ich versuche mich an Nero"COM" und das *.OCX lässt sich nicht als XbpActiveXControl() ansprechen also muss ich mit CreateObject() und dynamicCast( ActiveXObject() ) ran.
Hinweis: Nachdem ein AutomationObjekt in eine andere Klasse überführt wurde ist diese nicht länger mit dem COM/ActiveX Objekt verbunden.
und das ist mein "Problem" !
Ich kann es danach nicht mehr "ansprechen" und auch im VX Debugger ist alles "leer" ... :(

Property kann ich ja "vorher" setzen, aber Methoden will ich ja zur Runtime ausführen.
Nun komme ich nur noch an die :subscribeEvent() ran wenn ich :fireEvent() benutze.

hat jemand eine Idee ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: oObj := oObj:dynamicCast( ActiveXObject() ) "umkehren" ?

Beitrag von AUGE_OHR »

hi,

so die erste Version ist nun soweit das ich sie freigeben kann.
NeroCOM.JPG
NeroCOM.JPG (34.43 KiB) 1941 mal betrachtet
es hat sich ergeben das man alle Property vor dem "brennen" setzten muss sodas dass Thema erstmal [erledigt] ist

zur Demo : ich habe es auf 1 Verzeichniss "only" bislang ausgelegt und es wird noch nicht getestet ob die "Menge" auf das Medium ( CD-R/W ) "passt" ...

Das Zip besteht aus dem EXE und einer DLL.
Bei Interesse und eurer Mithilfe könnte ich versuchen daraus eine "universelle" LIB zu schreiben,
also sagt mir was "fehlt" oder wo was nicht "so" funktioniert wie es "sollte".

Code: Alles auswählen

#include "Common.ch"
#include "Xbp.ch"
#include "Appevent.ch"

#include "Nero.ch"                                // Nero Event Konstanten 
#include "NeroEv.ch"                              // meine Konstanten
MEMVAR zPath,ID_USER,ID_VERSION                   // für meine ErrorSys

PROCEDURE AppSys
Return

PROCEDURE LL13MODULEEXIT                         // LL13 Dummy for Errorsys
Return

PROCEDURE Main
LOCAL nEvent, oXbp, mp1, mp2
LOCAL oAppNero
LOCAL lExit   := .F.
LOCAL aSize   := {600,400}
LOCAL aPos    := CenterPos( aSize, AppDeskTop():currentsize() )
LOCAL cAlaska := Getenv("XPPROOT")

// für meine ErrorSys
PUBLIC zPath   := LEFT(AppName(.T.),LEN(AppName(.T.))-LEN(AppName(.F.)))
PUBLIC ID_USER := "Testi"
PUBLIC ID_VERSION := "0.01"

   IF EMPTY(cAlaska)
      Msgbox("Xbase++ SET XPPROOT= not set !!!"+CRLF+;
             "using USERPROFILE instead"+CRLF+;
             CRLF+;
             "WARNING : may exceed Disk Volume !!!")
   ENDIF

   SET EPOCH TO YEAR( DATE() ) - 50
   SET DATE GERMAN

   oAppNero  := NeroBurn():New(AppDeskTop(),,aPos,aSize)
   oAppNero:title := "Xbase++ NeroCOM"
   oAppNero:Icon  := 1
   oAppNero:drawingArea:resize := {| aOldSize, aNewSize, oSelf | MainReSize(aOldSize, aNewSize, oSelf) }
   oAppNero:close := {|| lExit  := .T. }
   oAppNero:Create()

   // Hardware "testen"
   oAppNero:TestMEDIA()
   // DynamicCast Events aktivieren
   oAppNero:DefEvent()

   SetAppWindow(oAppNero)
   // Combobox "Brenner" Auswahl
   oAppNero:oComboBurn:ItemSelected := {|| oAppNero:DriveInfo() }
   SetAppFocus(oAppNero:oComboBurn)

   nEvent := xbe_None
   DO WHILE !lExit
      nEvent := AppEvent ( @mp1, @mp2, @oXbp )
      DO CASE
         CASE nEvent == xbeP_Quit
         EXIT
      OTHERWISE
         oXbp:HandleEvent ( nEvent, mp1, mp2 )
      ENDCASE
   ENDDO

   oAppNero:UnDriveEvent()
   oAppNero:UnDefEvent()
   oAppNero:oNero := NIL
   oAppNero:destroy()

RETURN
editiert : "lates" Version für Nero v6.x und v7.x
Dateianhänge
NeroCOM.zip
Xbase++ v1.9x Nero"COM" activeX "lates" Version
(356.74 KiB) 184-mal heruntergeladen
gruss by OHR
Jimmy
Antworten