Novità

NUOVO AMBIENTE SCRIPT AREA TECNICA

Rookie

Advanced Member >PLATINUM PLUS<
li discutono sulla registrazione di componenti creat con twinbasic , il nostro invece è un componente scritto in codice manaeged reso visibile a com che si registra con un utility apposta (regasm) e non regsvr32 come i componenti com "veri" ,
Da queste eserienze mi sembra che la dll tutto somato i sia subito registrata a tutti , il problema era sorto dol primo progetto di test che aveva gia la referenza dentro , da quando lo metto senza referenza credo che la cosa sia migliorata.
Io steso se apro il progetto senza referenza mi trovo nelle condizioni di doverla mettere , faccio salva e non c'è manoc bisogno di chiudere

tutt iquesti errori dovuti alla referenza non presente

Vedi l'allegato 2252482

scompaiono appena la si selezioan da qui

Vedi l'allegato 2252483

si preme salva senza bisogno mancodi chiudere

gli errori scompaiono e si puo mandare in run tranquillamente

Vedi l'allegato 2252484

se nonostante questo in fase di run ddovesse uscire il messaggi oINTERFACCCIA NON REGISTRATA è perche uno ha registrato una dll vecchia , quella nuova che espone a com nuove classideve essere riregistrata daccapo , ma solo se le modifiche che ho fatto coinvolgono nuovi oggetit viidbili a com , perche se le modifiche riguardano codice di procedure che gia erano viste la riregistrazione non è necessaria , percio ho deto di rifarla solo quando lo ssuggerisco io che so quali modifiche ho apportato.
Buongiorno Luigi, scusa se ti ho fatto leggere qualcosa che si é rivelato essere non attinente a quanto scritto ieri sera. Comunque, alla fine della fiera, e‘ sí fastidioso ma non è poi cosí bloccante. Bisognerà fare dei passi operativi che forzano tB (nel maggior numero di casi) a vedere il progetto nella maniera corretta. Integrando nell’attuale modo di fare le operazioni correttive necessarie per arrivarci.
 
L

LuigiB

Guest
ciao Rookie , non problem mica ho dovuto leggere la divina commedia , in quel post si evidenziavano i problemi che com ha da sempre , ovvero le possibili diverse registrazioni dello stesso componente che creano casini nel registro di windows, non è il caso nostro , la nostra dll è prodotta sempre con lo stesso CLSID per questo a meno di non aggiungere nuovi oggeti visibili a com (che aggingono nuovi CLSID) non è necessario riregistrarla ogni volta che c'è un aggiornamento.
LA cosa strana è che sia a Legend che a Tom all'inizio gli funzionava solo a 64 bit e poi sono riusciti a farla girare a 32 .. questo punto rimane oscuro perche io l'ho sempre usata a 32 con twinbasic senza problemi , si puo usare anche a 64 comunque visto che come avevo detto in precedenza è compilata con l'opzione any cpu
 

Rookie

Advanced Member >PLATINUM PLUS<
ciao Rookie , non problem mica ho dovuto leggere la divina commedia , in quel post si evidenziavano i problemi che com ha da sempre , ovvero le possibili diverse registrazioni dello stesso componente che creano casini nel registro di windows, non è il caso nostro , la nostra dll è prodotta sempre con lo stesso CLSID per questo a meno di non aggiungere nuovi oggeti visibili a com (che aggingono nuovi CLSID) non è necessario riregistrarla ogni volta che c'è un aggiornamento.
LA cosa strana è che sia a Legend che a Tom all'inizio gli funzionava solo a 64 bit e poi sono riusciti a farla girare a 32 .. questo punto rimane oscuro perche io l'ho sempre usata a 32 con twinbasic senza problemi , si puo usare anche a 64 comunque visto che come avevo detto in precedenza è compilata con l'opzione any cpu
Dunque, bisogna analizzare gli elementi comuni tra un progetto 32-bit funzionante ripetutamente in modo regolare (tipo i tuoi) e un altro progetto totalmente omologo funzionante (tipo quelli di iLegend Tom, che hai menzionato), potrebbe emergere qualcosa di comune e determinante, per esempio un componente controintuitivo da aggiungere in ogni progetto che prevede l'uso di una dll come la tua, che forza la lettura corretta delle dipendenze, nel setting...
 
L

LuigiB

Guest
ipotesi troppo articolata... se c'è davvero qalcosa è nel sistema operativo .. SE...
 

joe

Advanced Member >PLATINUM PLUS<
Si è un ginepraio.

Inizialmente avevo funzionanti solo le prove fatte a 64.

Poi adesso, l'ultima versione della dll funziona solo a 32.

Dopo aver controllato e ricontrollato la registrazione, aperto, chiuso, salvato ecc. ecc.

Dunque qualcosina che non va c'è. (forse anche per colpa tutta mia).

Dopo averle provate tutte ed avere esperienza di tutto quanto ha scritto, ILegend, Genios ...

Tenterò di disinstallare, pulire il registro di Win10 e ricominciare dal principio.

:)
 
Ultima modifica:

genios

Advanced Member >PLATINUM<
CONTINUA A DARMI ERRORE INTERFACCIA NON REGISTRATA
DOPO CHE DO OK

Immagine.jpg
 

Allegati

  • ARCHIVIO LOTTO.jpg
    ARCHIVIO LOTTO.jpg
    331,2 KB · Visite: 15

i legend

Premium Member
ciao ho provato a fare un semplice test
non riesco a scrivere
eventuali suggerimenti
mettere sempre l ultima Dll al post 1
stamane ne ho scaricate 3 per aggiornare ,
Inserire una cartella con gli script fatti da luigi
ho provato ad usare le funzioni , le ho dichiarate come struct ( il suggeritore è fenomenale, poi mi perdo
un esempio sotto mano almeno finchè non si memorizza il tutto

se volessi scrivere una funzione da utilizzare sempre non solo per lo script dove la devo scrivere ? non vorrei fare casino con i moduli

ecco la mia funzione SiglaRuote(R) eString
Function SiglaRuota(R As Variant) As String
Dim sr As String:sr = ",BA,CA,FI,GE,MI,NA,PA,RM,TO,VE,NZ"
Dim Ar() As String
Ar = Split(sr, ",")
Return Ar(R)
End Function
'-------------------------------------------------
Function MyString(n As Long, sChar As String) As String
Dim s As String: s = ""
Dim i As Long
For i = 1 To n
s = s & sChar
Next
Return s
End Function

sarebbe meglio sempre inserire la funzione per la restituzione dell errore?
capisco che sono domande banali,e, noiose , ma se non capisco poi non imparo purtroppo.

che ne pensate se ci fermiamo un po e cerchiamo di studiare quello che abbiamo
?
tanto luigi credo che hai gia scritto quasi tutto .
ovviamente ascoltiamo anche il parere degli altri.

P.S: prima gli script li sapevano fare in pochossimi
con spaziometria il mondo è cresciuto perche
C'era un prof che ha paasato tempo a spiegare ;)
 

i legend

Premium Member
Se sei arrivato li , vuol dire che sei arrivato 😃👍
Io con l ultimo aggiornamento non mi funzia più.
Cmq credo di riuscire a scrivere qualche funzione ugualmente anche ae non riesco a testarla.
 

giomi

Banned
ciao
ilegend le function molte function sono qui
Codice:
/TestConsumer/Sources/Moduli/Utenti/Lotto/ModLotto.twin
/TestConsumer/Sources/Moduli/Utenti/Generici/ModUtilityGiochi.twin
potresti scrivere la
stringaEstratti
 
Ultima modifica:
L

LuigiB

Guest
Stringa estratti ho visto che c è.
Grazie giomi gentile come sempre 👍
ragazzi le vostre funzioni mettetele in un nuovo modulo , selezioante la voce addmodule quella con l'icona rossa di twinbasic.

inoltre tutti inom idelel funzioni implementatesono scritte nell'help. bisogna darli un osguardo ..
 

giomi

Banned
proptotipo non funzionante ,
mi sa , che non ci ho capito ancora molto
Codice:
Dim p As Long
Dim aN(5) As Variant

     For p = 01 To 05
         aN(p) = c.Estratto(c.EstrazioniArchivio, 1, p)
      Next
     Call MsgBox(c.StringaNumeri(aN, ".", True, True))
 

i legend

Premium Member
ciao giomi non so se ti serviva stringaestratti
ho provato cosi
allora fatta velocemente, manca la gestione degli errori e sicuramente ho scritto troppo codice quindi non è ottimizzato

ecco qui , a me sembra funziare :)
Codice:
Public Sub MyScriptRoutine()
' IN QUESTA ROUTINE VA SCRITTO IL PROPRIO CODICE COME SE FOSSE LA SUB MAIN DI SPAZIOMETRIA
' ATTENZIONE NON CAMBIARE NOME ALLA ROUTINE
Dim r As Long
Dim IdEstr As Long
IdEstr = EstrazioneFin
r = 1
Call MsgBox(StringaEstratti(IdEstr,r,",",False),vbOKOnly,"informatin")
Call MsgBox(StringaEstratti(IdEstr,r),vbOKOnly,"informatin")
End Sub
Function StringaEstratti(idestr As Long,r As Long,Optional sScharSep As String = ".",Optional Formato As Boolean = True,Optional idArch As Integer = 0) As String
    Dim p As Integer,e As Integer,s As String
    ' If sScharSep = "" Then sScharSep = "."
    s = ""
    If Formato = True Then
        For p = 1 To 5
            e = cScript.Estratto(idestr,r,p,idArch)
            s = s & Format2(e) & sScharSep
        Next
    Else
        For p = 1 To 5
            e = cScript.Estratto(idestr,r,p,idArch)
            s = s & e & sScharSep
        Next
    End If
    s = Left(s,Len(s) - 1)
    Return s
End Function
Function Format2(n As Integer) As Variant
    Dim b As Variant
    b = n
    If b > 0 And b <= 9 Then
        b = "0" & b
    End If
    Return b
End Function
 
L

LuigiB

Guest
ATTENZIONE NUOVO AGGIORNAMENTO CON PULIZIA REGISTRO PER CHI HA AVUTO PROBLEMI E REGISTRAZIONE AUTOMATICA

Visto i problemi riscontrati ho realizzato un utility apposta per chi non vuole eseguire i passaggi manuali specie quelli di rimozione delle chiavi
nel registro di windows allo scopo di ricreare uan situazione pulita prima della nuova registrazione.





la funzione DEREGISTRA crea un file bat dal nome Elimina.bat , lanciare questo file con diritti di amministratore per pulire i lregistro

1675373459357.png
 
Ultima modifica di un moderatore:

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 20 luglio 2024
    Bari
    02
    37
    06
    77
    72
    Cagliari
    28
    04
    69
    51
    83
    Firenze
    69
    17
    49
    75
    52
    Genova
    76
    33
    36
    66
    85
    Milano
    07
    51
    80
    89
    41
    Napoli
    10
    47
    28
    30
    48
    Palermo
    52
    24
    80
    62
    26
    Roma
    37
    29
    34
    35
    49
    Torino
    81
    13
    84
    88
    27
    Venezia
    84
    21
    39
    02
    03
    Nazionale
    81
    40
    56
    83
    35
    Estrazione Simbolotto
    Nazionale
    03
    14
    01
    16
    33
Alto