Page 1 of 1

Utilizzo ACTIVEX in FWH

PostPosted: Wed Oct 29, 2008 11:09 pm
by max
In Visual Basic, precisamente nell'ambiente di sviluppo macro di Excel, ho un controllo activex impostato e funzionante in questo modo:
Code: Select all  Expand view
Sub loadcobol()
  euro09 = "C:\092p6x4demo\euro09"
  euro09cfg = "C:\092p6x4demo\etc\cblcon34.sml"
  euro09ocx = euro09 & "\p\z9ocx"
  euro09az = euro09 & "\demop5"
  UTENTE = "MICHELE"

  Set cobolapp = New AcuGT
  cobolapp.Initialize ("-c " & euro09cfg)
 
  z9passwd = " "
  cobolapp.Call euro09ocx, "AUT", UTENTE, z9passwd, euro09az
End Sub

L'activex che mi interessa attivare è l'ACUGT, ed in sintesi i due controlli activex che vengono lanciati in esecuzione sono il cobolapp.initialize e il cobolapp.call , con il passaggio di alcuni parametri.
Come posso tradurre il tutto in FWH? Ho fatto qualche tentativo ma senza successo...
Un'altra domanda: come si può vedere l'elenco degli activex esistenti attivi e richiamabili in un pc? C'è una qualche utility che li elenca?
grazie.

Re: Utilizzo ACTIVEX in FWH

PostPosted: Thu Oct 30, 2008 8:30 am
by Enrico Maria Giordano
Cosa succede se scrivi semplicemente

Code: Select all  Expand view
#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oAcuGT := CREATEOBJECT( "AcuGT" )

    RETURN NIL


?

EMG

PostPosted: Thu Oct 30, 2008 8:40 am
by max
quando mando in esecuzione ricevo questo errore:

Application
===========
Path and name: W:\FWH\samples\EU092.EXE (32 bits)
Size: 1,374,720 bytes
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 10/30/08, 09:38:23
Error description: Error TOleAuto/-1 CO_E_CLASSSTRING: TOLEAUTO:NEW
Args:
[ 1] = C AcuGT

Stack Calls
===========
Called from: => THROW(0)
Called from: win32ole.prg => TOLEAUTO:NEW(331)
Called from: win32ole.prg => CREATEOBJECT(73)
Called from: EU092.prg => MAIN(7)

PostPosted: Thu Oct 30, 2008 8:44 am
by max
Quando nell'ambiente macro visual basic di excel scrivo "ACUGT." , dopo che ho messo il punto mi compare automaticamente una combobox con alcune funzioni come "initialize" , "call", ecc.ecc...

non so se questa info può essere utile o meno, te la passo così com'è...

PostPosted: Thu Oct 30, 2008 8:46 am
by Enrico Maria Giordano
E scrivendo

Code: Select all  Expand view
#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oAcuGT := TActiveX():New( oWnd, "AcuGT" )

    RETURN NIL


?

EMG

PostPosted: Thu Oct 30, 2008 9:45 am
by max
Ricevo questo errore:

Error description: Error BASE/1004 Class: 'NIL' has no exported method: HWND
Args:
[ 1] = U

Stack Calls
===========
Called from: => HWND(0)
Called from: ACTIVEX.PRG => TACTIVEX:NEW(0)
Called from: EU092.prg => MAIN(7)

PostPosted: Thu Oct 30, 2008 9:51 am
by Enrico Maria Giordano
Uff, ma ti devo proprio dire tutto?

Code: Select all  Expand view
#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oWnd, oAcuGT

    DEFINE WINDOW oWnd

    oAcuGT = TActiveX():New( oWnd, "AcuGT" )

    ACTIVATE WINDOW oWnd

    RETURN NIL


Impara a cercare nella cartella samples.

EMG

PostPosted: Thu Oct 30, 2008 10:03 am
by max
Ho già cercato, trovato, studiato e tentato di mio quanto ho trovato in fwh\samples .
Pigro sì, ma fino a un certo punto. Non mi piace rompere le scatole inutilmente al prossimo.
E' che come sai sono agli inizi con FWH e quindi ancora non mi fido molto di me stesso, tutto qua.

Tornando all'ultimo tentativo, ora quando lancio l'exe dopo qualche secondo ricevo una segnalazione di errore di explorer del tipo "invia segnalazione" o "non inviare".
Servono dettagli o è inutile?

PostPosted: Thu Oct 30, 2008 10:07 am
by Enrico Maria Giordano
A quanto pare "AcuGT" non è né un server OLE né un ActiveX. Oltre quei due tentativi non so proprio che altro proporti.

EMG

PostPosted: Thu Oct 30, 2008 10:13 am
by max
Ok, pazienza. A questo punto chiederò maggiori lumi a chi ha eseguito la macro su Excel visto che lì funziona.
Ma un comando/utility di sistema o di terzi per avere un elenco degli activex utilizzabili su un pc esiste?

PostPosted: Thu Oct 30, 2008 10:22 am
by max
Ad esempio: in WEBEXP.PRG ho notato che c'è uno "Shell.Explorer" che funziona.
Mi domando: come si fa a sapere che esiste il controllo activex "shell.explorer"? E che posso usare il "navigate" per andare ad una certa pagina o il "go home" per aprire la pagina iniziale?

E perché invece in EXCEL.PRG l'activex "OWC11.Spreadsheet" non mi funziona? Intuisco che occorre forse dare i riferimenti della giusta versione di office che ho su (2007) e in effetti la riga di comando lo dice, ma dove li trovo ?

PostPosted: Thu Oct 30, 2008 10:27 am
by Enrico Maria Giordano
max wrote:Ok, pazienza. A questo punto chiederò maggiori lumi a chi ha eseguito la macro su Excel visto che lì funziona.
Ma un comando/utility di sistema o di terzi per avere un elenco degli activex utilizzabili su un pc esiste?


Sì, ne ho visto qualcuno in passato ma non mi ha mai soddisfatto (e non so dartene i riferimenti).

EMG

PostPosted: Thu Oct 30, 2008 10:28 am
by Enrico Maria Giordano
max wrote:Mi domando: come si fa a sapere che esiste il controllo activex "shell.explorer"? E che posso usare il "navigate" per andare ad una certa pagina o il "go home" per aprire la pagina iniziale?

E perché invece in EXCEL.PRG l'activex "OWC11.Spreadsheet" non mi funziona? Intuisco che occorre forse dare i riferimenti della giusta versione di office che ho su (2007) e in effetti la riga di comando lo dice, ma dove li trovo ?


Per gli ActiveX è come per gli OLE, ogni oggetto è storia a sé e richiede la propria documentazione per poter essere utilizzato.

EMG