Novità

NUOVO AMBIENTE SCRIPT AREA TECNICA

giomi

Banned
ciao , dovrebbe essere
Codice:
Function GetTabAnalitico(idEstrazione As Long, Optional quantitaEstrazioni As Long = 250, Optional IdArchivio As Long = 0) As Struct_Estrazione_TabAnalitico()
 

lotto_tom75

Advanced Premium Member
non ti sei accorto che nella tua funzione è impostato come indice di partenza 1 , devi fare la stessa cosa quando chiami OridnaMatriceL

Vedi l'allegato 2254446


Vedi l'allegato 2254445

Ciao a tutti, io ho la dll20 e la versione 254 e quando eseguo lo script di ilegend mi da questo errore:

erroreordinamatrice.jpg
Anche se metto l'aggiunta dell'1 come hai indicato tu Luigi

Codice:
Call OrdinaMatriceL(aStat, idMese, ord, 1)

Ad ogni modo complimentissimi legend davvero un bel lavorone e interfaccia spaziale...! 💪👍🙀😀 👋🙂

Ps: ho iniziato a leggere anche il manuale consigliatoci da Rookie e devo dire che è molto ricco di esempi... (1116 pagine in totale, quasi il doppio dell'altro) ma ancora non sono arrivato al punto in cui spiega (spero...) come recuperare un dato da una combobox situata su un altro form... 🫠
 
Ultima modifica:
L

LuigiB

Guest
sembrerebeb che tu non abbia registrato la dll , o forse non hai messo quella giusta , nell'icertezza scarca tutto daccapo.
 

lotto_tom75

Advanced Premium Member
sembrerebeb che tu non abbia registrato la dll , o forse non hai messo quella giusta , nell'icertezza scarca tutto daccapo.

Ho registrato l'ultima che si trovava nella dll n.20
Aggiungo che se provo ad aggiornare l'archivio con l'ultima estrazione mi dice nessuna estrazione nuova mentre quello di spaziometria ad esempio si aggiorna... :)
 

lotto_tom75

Advanced Premium Member
allora vuol dire che funziona , forse è solo un problema di percezione ... :)

A voi vi aggiorna l'archivio lotto all'ultima di oggi? A me no. Comunque proverò anche a riavviare...
Nisba.. anche riavviando... sia qello di ilegend che il tuo script di default testconsumer della dll20 mi danno lo stesso errore... 🥴
 
Ultima modifica:

happy

Super member
Sembra che ci sia un problema di ordinamento e una colonna ed riga di zeri di troppo. 👋 :)

Con questo codice in Spaziometria
Codice:
Sub Main()
   Dim r(10),n1(1),n2(1),n3(1),n4(1),cLi(3,200),cLo(3,100),Dim uLt(4005,3)  
   ini = EstrazioneIni
   fin = EstrazioneFin
   r(10) = 1
   cl = 54
   ci = 10
   For x1 = 1 To 89
      For x2 = x1 + 1 To 90
         n1(1) = x1
         n2(1) = x2
         For x = 1 To cl
            cLi(1,x) = 0
            cLi(2,x) = 0
            cLi(3,x) = 0
         Next
         co = 0
         ca =(cl - 1)*ci
         cs = 0
         For x = 0 To ca Step ci
            co = co + 1
            cLi(1,co) = co
            ex = fin - x
            Messaggio Time & " " & n1(1) & " " & n2(1)
            p = SerieFreq(ex -(ci - 1),ex,n1,r,1)
            If p > 0 Then cLi(2,co) = p
            q = SerieFreq(ex -(ci - 1),ex,n2,r,1)
            If q > 0 Then cLi(3,co) = q
            If p > 0 And q > 0 Then cs = cs + 1
            If cs = 1 And p > 0 And q > 0 Then
               cr = cr + 1
               uLt(cr,1) = co
               uLt(cr,2) = n1(1)
               uLt(cr,3) = n2(1)
            End If
         Next
      Next
   Next
   OrdinaMatrice uLt,- 1,1
   For x = 1 To 10
      rig1 = rig1 + FormatSpace(uLt(x,1),4)
      rig2 = rig2 + FormatSpace(uLt(x,2),4)
      n3(1) = uLt(x,2)
      rig3 = rig3 + FormatSpace(uLt(x,3),4)
      n4(1) = uLt(x,3)
      cl1 = 0
      For z = 1 To cl
         cl1 = cl1 + 1
         If cl1 > 100 Then Exit For
         cLo(1,z) = 0
         cLo(2,z) = 0
         cLo(3,z) = 0
      Next
      co1 = 0
      For y = 0 To ca Step ci
         co1 = co1 + 1
         If co1 > 100 Then Exit For
         cLo(1,co1) = co1
         es = fin - y
         Messaggio Time & " " & n3(1) & " " & n4(1)
         p1 = SerieFreq(es -(ci - 1),es,n3,r,1)
         If p1 > 0 Then cLo(2,co1) = p1
         q1 = SerieFreq(es -(ci - 1),es,n4,r,1)
         If q1 > 0 Then cLo(3,co1) = q1
      Next
      Scrivi Space(6) & n3(1) & " " & n4(1)
      ScriviMatrice cLo,0,3
   Next
End Sub

ottengo questo output:
Spaziometria.JPG



Con lo stesso codice in twinBasic

Codice:
' SCRIVERE QUI IL PROPRIO CODICE COME SE FOSSE LA SUB MAIN DI SPAZIOMETIRA
   
         Dim cLi(3, 200) As Long, cLo(3, 100) As Long, uLt(4005, 3) As Long
   Dim n1(1) As Integer, n2(1) As Integer, n3(1) As Integer, n4(1) As Integer, r(10) As Integer
   Dim ca As Integer, ci As Integer, cl As Integer, cl1 As Integer, co As Integer, co1 As Integer, cr As Integer, cs As Integer
   Dim p As Integer, q As Integer, p1 As Integer, q1 As Integer, x  As Integer, x1  As Integer, x2  As Integer, y As Integer, z  As Integer
   Dim es As Long, ex As Long, ini As Long, fin As Long
   Dim lin1 As String, lin2 As String, lin3 As String
   ini = EstrazioneIni
   fin = EstrazioneFin
   r(10) = 1
   cl = 54
   ci = 10
   For x1 = 1 To 89
      For x2 = x1 + 1 To 90
         n1(1) = x1
         n2(1) = x2
         For x = 1 To cl
            cLi(1, x) = 0
            cLi(2, x) = 0
            cLi(3, x) = 0
         Next
         co = 0
         ca = (cl - 1) * ci
         cs = 0
         For x = 0 To ca Step ci
            co = co + 1
            cLi(1, co) = co
            ex = fin - x
            Messaggio Time & " " & n1(1) & " " & n2(1)
            p = SerieFreq(ex - (ci - 1), ex, n1, r, 1)
            If p > 0 Then cLi(2, co) = p
            q = SerieFreq(ex - (ci - 1), ex, n2, r, 1)
            If q > 0 Then cLi(3, co) = q
            If p > 0 And q > 0 Then cs = cs + 1
            If cs = 1 And p > 0 And q > 0 Then
               cr = cr + 1
               uLt(cr, 1) = co
               uLt(cr, 2) = n1(1)
               uLt(cr, 3) = n2(1)
            End If
         Next
      Next
   Next
   OrdinaMatrice uLt, -1, 1
   For x = 1 To 10
      lin1 = lin1 + FormatString(CStr(uLt(x, 1)), "    ", 2)
      lin2 = lin2 + FormatString(CStr(uLt(x, 2)), "    ", 2)
      n3(1) = uLt(x, 2)
      lin3 = lin3 + FormatString(CStr(uLt(x, 1)), "    ", 2)
      n4(1) = uLt(x, 3)
      cl1 = 0
      For z = 1 To cl
         cl1 = cl1 + 1
         If cl1 > 100 Then Exit For
         cLo(1, z) = 0
         cLo(2, z) = 0
         cLo(3, z) = 0
      Next
      co1 = 0
      For y = 0 To ca Step ci
         co1 = co1 + 1
         If co1 > 100 Then Exit For
         cLo(1, co1) = co1
         es = fin - y
         Messaggio Time & " " & n3(1) & " " & n4(1)
         p1 = SerieFreq(es - (ci - 1), es, n3, r, 1)
         If p1 > 0 Then cLo(2, co1) = p1
         q1 = SerieFreq(es - (ci - 1), es, n4, r, 1)
         If q1 > 0 Then cLo(3, co1) = q1
      Next
      Scrivi Space(6) & n3(1) & " " & n4(1)
      ScriviMatrice cLo, 0, 3
   Next

ottengo:

con twinBasic.JPG
 

Xeroxs

Advanced Member >PLATINUM<
Buongiorno a Tutti,
Rinnovo i miei complimenti a LuigiB per questo nuovo Progetto condito dal suo Ottimo lavoro
da non dimenticare gli spunti e le info di Rookie

da quanto fatto da lotto_tom75 e da I-Legend in Primis in tutta la fase iniziale
dagli ottimi spunti o script proposti da Mike58 (Ben contento di Rivederti)
e da quanto proposto anche da altri sia con osservazioni che eventuali proposte.

Da quello che Vedo potrebbe essere una valida alternativa per la realizzazione di script, soprattutto per la velocità garantita anche se Ritengo Spaziomentria una perla più che rara in quanto offre ogni possibilità di statistica e calcoli oltre ogni immaginazione e gratis, su alcune cose andrebbe aggiornato ma questo dipende solo dal bravissimo LuigiB. La storia di Spaziometria è stata scritta e vissuta da molti di Voi e resterà comunque il migliore programma di lotto free mai realizzato, grazie alla collaborazione dinamica di tanti anche se ho visto che a volte discussioni che io definisco banali hanno un pò sgretolato quella bella e mutua collaborazione che certamente era nelle idee di LuigiB, come credo spera si possa verificare in questo nuovo progetto.

Spero che nessuno si offenda se faccio alcune osservazioni, purtroppo per chi come me che segue il lotto da oltre 25 anni ha bisogno di programmi come questi quì proposti ed io avendo difficoltà a capire di programmazione e altro ho imparato molto da Voi soprattutto visionando i Vostri Script a costo di studiarli in ogni sua riga di codice sia complessa e banale così da poter migliorare anche eventualmente nel creare script o ricerche per i miei spunti. Per cui Ringrazio Tutti quelli che hanno proposto i loro script così da potrli "studiare" e non copiare visto che leggo di alcuni diciamo "bravi" non postano perchè ritengono che si possa copiare chissa cosa poi... Io sono solo interessato a capire la struttura degli script e non ai loro risultati di metodi e sono convinto che altri la pensano come me, ovvio poi ci sono alcuni che copiano lo script e lo pubblicano altrove dicendo che è opera loro e questo è sicuramente sbagliato per non dire peggio...

Sono capitato quì per caso anche se sono registrato da molto tempo e sono contento di averlo fatto perchè ho avuto da molti di Voi ottimi aiuti per la mia crescita e non posso che ringraziare Tutti anche se nominarVi Tutti rischio di dimenticarne qualcuno e non vorrei, uno però mi piacerebbe nominarlo perchè lo ritengo davvero bravo in ciò che propone ed è Salvo50 che per quanto mi riguarda e Voglio dirtelo dandoti del Tu (se non ti Offendi),
credimi non sottovalutarti in quello che fai e farai in quanto hai un potenziale enorme, non sarai magari al livello di alcuni, inarrivabili per certi aspetti, ma sei uno dei pochi da cui ho imparato ed appreso qualcosa che mi ha aiutato a capire grazie ai tuoi lavori.

Spero cha altri dei "bravi" avranno voglia di intervenire anche magari con qualche script che potrà solo offrire un valido contributo per ultimare o continuare questo nuovo percorso.

Io sto studiando anche VBA in quanto molte affinità mi aiutano a capire alcune logiche.
Vorrei farlo anche con excel in quanto mi aiuta davvero molto a capire anche twinBasic e vorri chiedere se qualcuno mi può aiutare almeno solo a creare un archivio che si possa aggiornare o da file o da sito così da poter creare qualcosa di più attinente anche con questo percorso, ma temo che nessuno mi voglia o possa aiutare su questo, sto preparando la struttura del file poi vedrò.... se avrò il coraggio di chiederlo.

Un ultimo saluto lo Rivolgo a Silop. Grazie davvero anche a Te per quello che fai....
 

i legend

Premium Member
ciao a tutti
luigi ho ancora problemi con ordinamatriceL
ti posto lo script , è solo un esempio stupido, magari neanche funzia correttamente ma non mi spiego i risultati dell ordinamento
ho provato anche ad inserire
Call OrdinaMatriceL(aStat, idMese, ord, 1, 1)
Call OrdinaMatriceL(aStat, idMese, ord, 1, 1,15)
ma niente l ultima colonna non si registra bene
ecco lo script

Avviso a tutti , lo script potrebbe essere sbagliato,(no utilizzare al massimo da fare verifiche ) devo controllare il tempo che impiega utilizzando le funzioni di tb

ho confrontato utilizzando anche la sub ordstat (che è lentissima ovviamente)
so che sto sbagliando io , ma dove?
Codice:
Public Sub MyScriptRoutine()

    ' SCRIVERE QUI IL PROPRIO CODICE COME SE FOSSE LA SUB MAIN DI SPAZIOMETIRA

Dim aR(1) As Long, idMese As Long = 1, ord As Long = -1
Dim R As Long, i As LongLong, j As Long
 ReDim aStat(UBound(aR) * 4005, 15) As Long
    ReDim aId(UBound(aR), 89, 90) As LongLong
For R = 1 To 1
    aR(R) = R
Next
Call GetAmbiSuRuotaSingola(aR(), idMese, ord)
' utilizzata per vedere se sbagliavo a caricare'
'Call GetIdAppoggioAmbi(aR, aId, aStat)
'For i = 1 To UBound(aStat)
'Scrivi aStat(i, 14) & "|" & aStat(i, 15)
'Next
End Sub
Sub GetAmbiSuRuotaSingola(aR() As Long, idMese&, ord&)
    Dim idEstr&, idM&, s$, pres&, nR&
    nR = UBound(aR)
    Dim r As Long, p1 As Long, p2 As Long, E1 As Long, E2 As Long, id As LongLong
    ' per utilizzare matrice a 2 dimensioni sostituisco aStat(nR,90,14)
    ReDim aStat(nR * 4005, 15) As Long
    ReDim aId(nR, 89, 90) As LongLong
    GetIdAppoggioAmbi(aR(), aId(), aStat()) ' questa funzione mi restituisce l indice del vettore dove coolocare i risultati
    For idEstr = 1 To EstrazioniArchivio
        idM = Month(DataEstrazione(idEstr))
        For r = 1 To UBound(aR)
            ReDim aE(5) As Long
            Call GetArrayNumeriRuota(idEstr, aR(r), aE)
            If aE(1) > 0 Then
            Call OrdinaVettoreL(aE, 1, 1)
                For p1 = 1 To 4
                    For p2 = p1 + 1 To 5
                    E1 = aE(p1)
                    E2 = aE(p2)
                    id = aId(r, E1, E2)
                    aStat(id, idM) = aStat(id, idM) + 1
                    Next
                Next
            End If
        Next
    Next
   'Esempio 1
 Call OrdinaMatriceL(aStat, idMese, ord, 1, 1)
'Call OrdinaStat(aStat, idmese, -1)
    For id = 1 To UBound(aStat)
        s = SiglaRuota(aStat(id, 13)) & "   " & Format2(aStat(id, 14)) & "." & Format2(aStat(id, 15)) & "   "
        For E1 = 1 To 12
            s = s & Format2(aStat(id, E1)) & "    "
        Next
        Scrivi s
    Next
End Sub
' arte dell arrangiamento dell accademia  pasticcioni

 Sub GetIdAppoggioAmbi(aRu() As Long, aId() As LongLong, aStat() As Long)
    Dim i As Long, e1 As Long, e2 As Long, k As LongLong, m As Long
    For i = 1 To UBound(aRu)
        For e1 = 1 To 89
           For e2 = e1 + 1 To 90
            k + = 1
            aId(i, e1, e2) = k
            For m = 1 To 12
             aStat(k, m) = 0
             Next
            aStat(k, 13) = aRu(i)
            aStat(k, 14) = e1
            aStat(k, 15) = e2
            Next
        Next
    Next
End Sub

   Sub OrdinaStat(aN() As Long, idC As Long, V As Long)
   Dim lb As Long:lb = 1
   Dim ub As Long:ub = UBound(aN)
   Dim i As Long
   Dim j As Long
   If V = -1 Then
      Do While lb < ub
         For i = ub To lb + 1 Step -1
            If aN(i, idC) > aN(i - 1, idC) Then
            For j = 0 To UBound(aN, 2)
               Scambia aN(i, j), aN(i - 1, j)
               Next
            
            End If
         Next
         lb = lb + 1
      Loop
   ElseIf V = 1 Then
      Do While lb < ub
         For i = ub To lb + 1 Step -1
            If aN(i, idC) < aN(i - 1, idC) Then
            
                For j = 0 To UBound(aN, 2)
               Scambia aN(i, j), aN(i - 1, j)
               Next

            End If
         Next
         lb = lb + 1
      Loop
   End If
End Sub

Sub Scambia(a As Long, b As Long)
Dim t As Long = a
a = b
b = t

  
End Sub
End Module
erroreutilizzo1.png
 
L

LuigiB

Guest
nuovo aggiornamento dovrebbero essersi risolti i problem isu ordinamatrice e ho agginto la funzione TabelloneAnalitico come chiesto da happy


REGISTRARE LA DLL


a proposito Happy il tuo script ha qualche errore dovuto alla differenza d'uso e funzionamento della funzione di ordinmeto , come avevi fatto tu non andava bene , lo script che dovrai usare in twinbasic dopo aver scaricato questo nuovo aggiornamenot è questo , per far uscire le cose tali e quali in spaziometria devi fare cosi

1677672313725.png

Codice:
Public Sub MyScriptRoutine()
    ' SCRIVERE QUI IL PROPRIO CODICE COME SE FOSSE LA SUB MAIN DI SPAZIOMETIRA
     Dim cLi(3, 200) As Long, cLo(3, 100) As Long, uLt(4005, 3) As Long
   Dim n1(1) As Integer, n2(1) As Integer, n3(1) As Integer, n4(1) As Integer, r(10) As Integer
   Dim ca As Integer, ci As Integer, cl As Integer, cl1 As Integer, co As Integer, co1 As Integer, cr As Integer, cs As Integer
   Dim p As Integer, q As Integer, p1 As Integer, q1 As Integer, x  As Integer, x1  As Integer, x2  As Integer, y As Integer, z  As Integer
   Dim es As Long, ex As Long, ini As Long, fin As Long
   Dim lin1 As String, lin2 As String, lin3 As String
   ini = EstrazioneIni
   fin = EstrazioneFin
   r(10) = 1
   cl = 54
   ci = 10
   For x1 = 1 To 89
      For x2 = x1 + 1 To 90
         n1(1) = x1
         n2(1) = x2
         For x = 1 To cl
            cLi(1, x) = 0
            cLi(2, x) = 0
            cLi(3, x) = 0
         Next
         co = 0
         ca = (cl - 1) * ci
         cs = 0
         For x = 0 To ca Step ci
            co = co + 1
            cLi(1, co) = co
            ex = fin - x
            Messaggio Time & " " & n1(1) & " " & n2(1)
            p = SerieFreq(ex - (ci - 1), ex, n1, r, 1)
          
      
          
            If p > 0 Then cLi(2, co) = p
            q = SerieFreq(ex - (ci - 1), ex, n2, r, 1)
            If q > 0 Then cLi(3, co) = q
            If p > 0 And q > 0 Then cs = cs + 1
            If cs = 1 And p > 0 And q > 0 Then
               cr = cr + 1
               uLt(cr, 1) = co
               uLt(cr, 2) = n1(1)
               uLt(cr, 3) = n2(1)
            End If
         Next
      Next
   Next
   Call OrdinaMatriceL(uLt, "1,2,3", , 1)
 
   For x = 1 To 10
      lin1 = lin1 + FormatString(CStr(uLt(x, 1)), "    ", 2)
      lin2 = lin2 + FormatString(CStr(uLt(x, 2)), "    ", 2)
      n3(1) = uLt(x, 2)
      lin3 = lin3 + FormatString(CStr(uLt(x, 1)), "    ", 2)
      n4(1) = uLt(x, 3)
      cl1 = 0
      For z = 1 To cl
         cl1 = cl1 + 1
         If cl1 > 100 Then Exit For
         cLo(1, z) = 0
         cLo(2, z) = 0
         cLo(3, z) = 0
      Next
      co1 = 0
      For y = 0 To ca Step ci
         co1 = co1 + 1
         If co1 > 100 Then Exit For
         cLo(1, co1) = co1
         es = fin - y
         Messaggio Time & " " & n3(1) & " " & n4(1)
         p1 = SerieFreq(es - (ci - 1), es, n3, r, 1)
         If p1 > 0 Then cLo(2, co1) = p1
         q1 = SerieFreq(es - (ci - 1), es, n4, r, 1)
         If q1 > 0 Then cLo(3, co1) = q1
      Next
      Scrivi Space(6) & n3(1) & " " & n4(1)
      ScriviMatrice cLo, 0, 3, 1, , , cl
   Next
End Sub
 

lotto_tom75

Advanced Premium Member
Il sig. Baiocco Sperlari Gran Biscotto :D ci tiene ad aggiornare i due proff e ilegend che la situazione errore riguardo l'ordinamatriceL postato sopra è risolto e che dipendeva solo... dal non aver registrato, causa stanchezza neuronica, la nuova dll con reg 32 come admin :LOL: . Ora funzia all e grazie a Shifu master anche per la nuova dll n.22 (y)💪

👋😀

ps x xeroxs : grazie per la nota (addirittura linkata sulle reactions... 😂) ma la prossima volta però, nel fare le domande, non essere così sintetico... ;) 😄 👍💪👋🙂

ps x ilegend : tu hai come i due proff la versione 255? E l'aggiorni comunque sempre all'ultima? Io per adesso ho sempre la 254. Non dovevo farti conoscere.. il "save as" :ROFLMAO: perchè adesso... chi ti raggiunge e ti ferma più? (y) 💪 😜
 
Ultima modifica:

happy

Super member
nuovo aggiornamento dovrebbero essersi risolti i problem isu ordinamatrice e ho agginto la funzione TabelloneAnalitico come chiesto da happy


REGISTRARE LA DLL


a proposito Happy il tuo script ha qualche errore dovuto alla differenza d'uso e funzionamento della funzione di ordinmeto , come avevi fatto tu non andava bene , lo script che dovrai usare in twinbasic dopo aver scaricato questo nuovo aggiornamenot è questo , per far uscire le cose tali e quali in spaziometria devi fare cosi

Vedi l'allegato 2254520

Codice:
Public Sub MyScriptRoutine()
    ' SCRIVERE QUI IL PROPRIO CODICE COME SE FOSSE LA SUB MAIN DI SPAZIOMETIRA
     Dim cLi(3, 200) As Long, cLo(3, 100) As Long, uLt(4005, 3) As Long
   Dim n1(1) As Integer, n2(1) As Integer, n3(1) As Integer, n4(1) As Integer, r(10) As Integer
   Dim ca As Integer, ci As Integer, cl As Integer, cl1 As Integer, co As Integer, co1 As Integer, cr As Integer, cs As Integer
   Dim p As Integer, q As Integer, p1 As Integer, q1 As Integer, x  As Integer, x1  As Integer, x2  As Integer, y As Integer, z  As Integer
   Dim es As Long, ex As Long, ini As Long, fin As Long
   Dim lin1 As String, lin2 As String, lin3 As String
   ini = EstrazioneIni
   fin = EstrazioneFin
   r(10) = 1
   cl = 54
   ci = 10
   For x1 = 1 To 89
      For x2 = x1 + 1 To 90
         n1(1) = x1
         n2(1) = x2
         For x = 1 To cl
            cLi(1, x) = 0
            cLi(2, x) = 0
            cLi(3, x) = 0
         Next
         co = 0
         ca = (cl - 1) * ci
         cs = 0
         For x = 0 To ca Step ci
            co = co + 1
            cLi(1, co) = co
            ex = fin - x
            Messaggio Time & " " & n1(1) & " " & n2(1)
            p = SerieFreq(ex - (ci - 1), ex, n1, r, 1)
        
    
        
            If p > 0 Then cLi(2, co) = p
            q = SerieFreq(ex - (ci - 1), ex, n2, r, 1)
            If q > 0 Then cLi(3, co) = q
            If p > 0 And q > 0 Then cs = cs + 1
            If cs = 1 And p > 0 And q > 0 Then
               cr = cr + 1
               uLt(cr, 1) = co
               uLt(cr, 2) = n1(1)
               uLt(cr, 3) = n2(1)
            End If
         Next
      Next
   Next
   Call OrdinaMatriceL(uLt, "1,2,3", , 1)
 
   For x = 1 To 10
      lin1 = lin1 + FormatString(CStr(uLt(x, 1)), "    ", 2)
      lin2 = lin2 + FormatString(CStr(uLt(x, 2)), "    ", 2)
      n3(1) = uLt(x, 2)
      lin3 = lin3 + FormatString(CStr(uLt(x, 1)), "    ", 2)
      n4(1) = uLt(x, 3)
      cl1 = 0
      For z = 1 To cl
         cl1 = cl1 + 1
         If cl1 > 100 Then Exit For
         cLo(1, z) = 0
         cLo(2, z) = 0
         cLo(3, z) = 0
      Next
      co1 = 0
      For y = 0 To ca Step ci
         co1 = co1 + 1
         If co1 > 100 Then Exit For
         cLo(1, co1) = co1
         es = fin - y
         Messaggio Time & " " & n3(1) & " " & n4(1)
         p1 = SerieFreq(es - (ci - 1), es, n3, r, 1)
         If p1 > 0 Then cLo(2, co1) = p1
         q1 = SerieFreq(es - (ci - 1), es, n4, r, 1)
         If q1 > 0 Then cLo(3, co1) = q1
      Next
      Scrivi Space(6) & n3(1) & " " & n4(1)
      ScriviMatrice cLo, 0, 3, 1, , , cl
   Next
End Sub
Ciao Luigi grazie e, come dice il detto: "sbagliando s'impara" , e da te c'è sempre da imparare.
Grazie anche per la funzione TabelloneAnalitico ()
Un saluto a tutti.
 
L

LuigiB

Guest
Twinbasic come del resto il vecchio vb6 consente di creare dei controlli utente personalizzati , a cosa servono questi controlli personalizzati ?
Servono come in questo caso , se c'è una limitazione sui controlli che abbiamo gia a disposizione possiamo provare a scrivere noi un controllo
in base alle nostre necessità , facendo cosi eviteremo di ricorrere a controlli di terze parti che devono essere necessariamente distribuiti col programma. In questo caso no , il controllo personalizzato è presente nel progetto e viene compilato insieme al programma , non c'è bisogno di file esterni

In questo caso per un esigenza di quell oche si è rivelato un vero ESTETA delle interfaccie ovvero il nostro Legend ci serviva una listbox che avesse la possibilita di colorare a piacimento le righe e il testo , quindi mi sono dilettato nel farla.

Allego il file del progetto che si compone di un form e della usercontrol.

Per portare il controllo in uno dei vostr progetti purtroppo non esiste ancorala funzione importa come da vb6 e quindi va fatto a mano.

poi se c'è chi è interessato spiego come .. è facile

nel frattempo ecco un esempio con coloriscelti da me ma si possono ovviamente cambiare e il codice sorgente in twinbasic 257


1677700972430.png
 

Allegati

  • LbColorata_Esempio.twinproj.txt
    67,2 KB · Visite: 13

i legend

Premium Member
In questo caso per un esigenza di quell oche si è rivelato un vero ESTETA delle interfaccie ovvero il nostro Legend
🤣🤣🤣🤣🤣🤣
Grazie Luigi.
Ora sto combattendo con una label che vorrei mostrasse i secondi per far capire che il programma sta lavorando e non è impallato.
Quando devo popolare la listbox con 44000 righe l effetto è brutto.
Ho reso invisibile la listbox e si vede solo quando è completa. Sembra anche più veloce così.
Le ultime piccole cose e posto tutto.

Xtutti:
Ho scaricato la versione 257.
Ho provato li a fare il progetto.
Nonostante abbia messo il pulsante per chiudere il form , va in crash.
A voi succede?

Grazie mille Luigi:)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 29 giugno 2024
    Bari
    83
    65
    11
    16
    67
    Cagliari
    59
    30
    85
    82
    39
    Firenze
    46
    79
    29
    14
    25
    Genova
    32
    61
    24
    70
    06
    Milano
    41
    07
    09
    70
    16
    Napoli
    70
    07
    63
    22
    39
    Palermo
    20
    04
    23
    69
    07
    Roma
    74
    78
    12
    23
    77
    Torino
    52
    08
    74
    70
    15
    Venezia
    04
    32
    50
    67
    38
    Nazionale
    01
    61
    60
    42
    48
    Estrazione Simbolotto
    Napoli
    28
    43
    24
    32
    13
Alto