Novità

NUOVO AMBIENTE SCRIPT AREA TECNICA

  • Creatore Discussione Creatore Discussione LuigiB
  • Data di inizio Data di inizio
Una riflessione dettata dal buon senso tramandato da anziani lucidi che hanno attraversato decenni di difficolta' e ricostruzioni. Se abbiamo la fortuna di disporre di un pezzo di terra e decidiamo, con quello che abbiamo, di edificare una casetta che ci accolga e ci protegga dalle intemperie, con un tetto che non voli via insieme al vento, facendoci al tempo stesso sopportare agevolmente il freddo d'inverno senza farci soffrire la calura estiva, bisogna partire dalle fondamenta, costruire cioe' una platea sulle quali iniziare ad ancorare i pilastri, dopo che abbiamo stabilito, il numero minimo di ambienti (escludendo servizi igienici e cucina) per stare insieme dignitosamente. Questo si traduce in una camera patronale, le camerette per i pargoli e qualche ambiente per eventuali ospiti.

Allora vediamo attraverso questa basilare metafora dove vengo a parare. Dobbiamo prima pero' dare delle priorita' temporali all'esecuzione del lavoro, senza scomodare Gantt e i suoi diagrammi.
0) TB nella metafora e' il pezzo di terra e il conseguente scavo necessario ad ospitare la platea.
1) le fondamenta, si fanno con l'esperienza di ferraioli e carpentieri che mettono inisieme il legname, il ferro e il cemento, dentro i casseri.
2) i pilastri
3) travi,solette
4) TETTO

Mi sembra che siamo partiti con un ottimo progetto eppero' iniziando dal tetto. Il tetto non puo' essere edificato sopra il vuoto, servono le travi che sorreggano le solette. Le stesse travi non possono essere edificate nel vuoto, servono i pilastri che le sorreggano. E i pilastri devono essere eretti prima di arrivare alle travi e alle solette.

Quindi arriviamo alle fondamenta per iniziare a edificare la casa. Cosa rappresentano le fondamenta, il legname, i carpentieri, i ferraioli e i casseri?

Rappresentano quella conoscenza tecnica che deriva da VB6, per iniziare a creare attraverso i ferraioli (le istruzioni VB), che prendono il ferro, grosso, medio, fino,etc, lo sagomano, lo tagliano, lo legano insieme, lo ancorano e passano la palla ai carpentieri. I quali incapsulano (le istruzioni tB) l'opera creata dai ferraioli creando i casseri (classi, metodie oggetti) che conterranno il cemento, che una volta solidificato e asciugato, permettera' di elevare i piloni fino all"altezza dove si appoggeranno le travi e le solette.

Ancora il tetto e' solo un'idea. E qui mi fermo per tornare indietro. Se e' vero come e' vero che bisogna imparare a programmare, dobbiamo tornare alle fondamenta, cioe' come fare a rilevare quale stato ha un checkbox, come rilevare quale opzione e' stata selezionata in un gruppo di option buttons, come popolare un listbox, come rilevare quale elemento nel listbox e' stato selezionato, e via di seguito con gli altri necessari controlli di windows. La difficolta' non e' finita qui, perche' e' vero che TB e' molto compatibile con VB ma non e' la stessa bestia. E qui nascono le difficolta'...

Fino a questo momento, solo @i legend e @lotto_tom75 sono entrati nei concetti anche se ovviamente hanno oggettive difficolta' con le istruzioni atte a oggettivare le loro intuizioni e la loro intelligenza che e' riuscita a connettere i vari elementi per arrivare al risultato.

Io, per la mia esperienza, sono qui a ribadire cio' che ha reso famoso Syniaskzy per il suo "quando hai fretta rallenta, perche' finirai spesso che per procedere piu' velocemente dovrai tornare indietro", e qui stranamente questo mi sembra quanto mai appropriato.

Bisogna partire cercando di fare ora con tB quello che avremmo fatto prima con VB, per trovare un equilibrio tra potenza e compatibilita'. Quando questo sara' acquisito, familiare, interiorizzato, allora si potra' alzare la testa per vedere la base del tetto.

Questo e' il mio pensiero.
Buon pomeriggio Ragazzi! Riprendo un messaggio scritto il 23 gennaio u.s. dove suggerivo, di cercare di padroneggiare lo strumento di sviluppo, ovvero tB! Dato che stiamo arrivando a inserire e modificare gli script originali di Spaziometria trovando difficolta' (a dire il vero non tutti) nell'usare i metodi e gli eventi che espongono i controlli (gli oggetti) disponibili in tB.

Servirebbe un testo come quello sotto indicato, solo che e' scritto nella lingua di Albione. Forse esiste una traduzione italiana, ma non ne sono a conoscenza. E' un testo molto datato ma e' fatto molto bene, per capire la transizione tra il mondo orientato agli oggetti di VB6 e quello basato sugli oggetti di VB.Net.

La parte importante sono i primi tre o quattro capitoli dove con esempi molto chiari spiega come guardare agli oggetti in modo da pensare allo sviluppo di software con questo paradigma, dove ogni cosa che va' implementata e' sempre assimilabile ad un oggetto di qualche tipo. E ogni cosa implementata, in cascata e' costituita da altri oggetti che collaborano e interagiscono per raggiungere il risultato desiderato.

Questo libro, secondo me, e' un ponte che permette di capire meglio il sistema di sviluppo twinBasic, che ha molte anime, vuole essere un ambiente compatibile 100% con VB6 e con il linguaggio VBA (Visual Basic for Application, il linguaggio macro dei prodotti MS Office del mondo windows) entro il 2025, e inoltre divenire un buon linguaggio con delle estensioni che aumentano lo spettro delle applicazioni che e' possibile sviluppare in questo ambiente.

Infine, due parole sul compilatore integrato nell"IDE, il quale gia' permette di capire le sue potenzialita' anche se bisognera' attendere varie ottimizzazioni, in ordine alla velocita' di esecuzione dato che quella di compilazione e' gia' soddisfacente, l'ottimizzazione delle dimensioni dell'eseguibile, la gestione della memoria (che al momento non sarebbe giusto criticare), e altre cose che devono avere built-in i Compilatori ad alte prestazioni.

Per quello che serve per lo SMESS e' gia' a buon punto e lo stiamo vedendo con i primi script portati in tB dall'ambiente originale di Spaziometria e sopratutto, il che non e' da sottovalutare, e' free on charge. Senza trascurare che e' di qualche magnitudo di grandezza piu' facile da apprendere rispetto a VisualStudio/Vb.Net

Quindi padroneggiarlo puo' avere dei vantaggi che possono anche trascendere il mero porting degli scripts da Spaziometria...
Lascio la palla a Luigi, per indicare qualche testo simile a questo, disponibile in Italiano, fruibile con piu' facilita'.
Buona serata

1677432219786.png


Addendum:
Seguendo i suggerimenti dell'architetto del progetto @LuigiB ho cercato nella vasta letteratura afferente a VB6 e credo di aver trovato il miglior testo disponibile (se riuscirete a recuperarne una copia con l relativo relativo CD) per conoscere pratcamente tutto su VB6. Si puo' vedere il vasto contenuto del libro per capire se e' ben tagliato le vostre esigenze dando uno sguardo a questo sito che permette di visualizzarne il contenuto




1677471942265.png
 
Ultima modifica:
Ciao Rookie questo si riferisce a dotnet , twinbasic è piu vicino al vb6 .. un testo molto basico eraquello che avovo gia postato , bisogna prediligere libri sul vb6 ..
 
Ciao Rookie questo si riferisce a dotnet , twinbasic è piu vicino al vb6 .. un testo molto basico eraquello che avovo gia postato , bisogna prediligere libri sul vb6 ..
Si, corretto ma nei primi tre o quattro capitoli, si parla a coloro che provengono da VB6 per affrontare il cambio di paradigma offerto con VB.Net. Secondo me puo' servire a capire meglio tB ma anche la filosofia con cui hai implementato la DLL su cui e' basato lo SMESS. Era in questa ottica che l'ho indicato. Eppero' servono anche tanti esempi per approfondire e consolidare le prime nozioni... quindi sarebbe uno step successivo per coloro che potrebbero pensare alla migrazione futura verso l'ambiente nativo da cui e' nata la tua DLL.
Affermo queste cose per averlo letto piu' volte in quest'ultimo periodo...
 
Ultima modifica:
Io non ao perché, ma oggi dopo che mi son messo a rifare tutto ad un certo punto va in tilt , e mi cancella mezzo lavoro , nonostante avessi salvato in un punto posteriore a quello di ripristino.
Ma succede solo a me? Io ho la beta 254.
Mi armo di pazienza, tanta pazienza.
Più che altro perché è frustrante.
 
io ho la 255 , ho notato qualche problemino pure io mentre si scrive i lcodice ma a me non è capitato che abbia perso nulla.
Se salvi il progetto di tranto in tanto qualndo lo riapri la roba che hai fatto la ritrovi ..
 
Io non ao perché, ma oggi dopo che mi son messo a rifare tutto ad un certo punto va in tilt , e mi cancella mezzo lavoro , nonostante avessi salvato in un punto posteriore a quello di ripristino.
Ma succede solo a me? Io ho la beta 254.
Mi armo di pazienza, tanta pazienza.
Più che altro perché è frustrante.
Anche io uso la beta254, e fino ad ora non ho perso nulla. Anche quando tB si piomba bloccandosi, perche' ne ho fatto ormai un'abitudine preservativa di salvare spesso, regolarmente, poiche' tB non ha la funzione autosave.
Penso che potresti farlo anche tu, e al termine della tua sessione di programmazione, salvare il tuo progetto del momento su un supporto diverso da quello che usi per lo sviluppo.
 
io ho la 255 , ho notato qualche problemino pure io mentre si scrive i lcodice ma a me non è capitato che abbia perso nulla.
Se salvi il progetto di tranto in tanto qualndo lo riapri la roba che hai fatto la ritrovi ..
Sto salvando passo passo.
La cosa strana è che sono tornato a 2 salvataggi passati.
Ho perso mezzo progetto.
Aggiorni anche io.
Non devo fare nulla vero? Basta scaricare l ultima versione.
 
devi sostituire tutto il contenuto della cartella twinbasic con quanto presente nello zip che scarichi , anxi per sicurezza cancelalti prima la cartella col vecchio twinbasic..

quando hai fatto posta il progetto che mettiamo la lista con le ruote colorate
 
Codice:
Class Form1
    Dim NumeroUscito(1 To 90) As String
    Dim Cartella As Byte
        Sub New()
        End Sub
    Public Sub Form_Load()
    Form1.Show
    Dim x As Byte
    For x = 0 To 89
    numero(x).Visible = True
    numero(x).Enabled = False
    Next x
    End Sub
    Private Sub Command1_Click()
    Dim x As Byte
    For x = 0 To 89
    numero(x).Visible = True
    numero(x).Enabled = False
    Next x
    Command2.Visible = True
     End Sub
    Private Sub Command2_Click()
    Dim y As Byte
    For y = 0 To 89
    numero(y).Visible = False
    Next y
    Command1.Visible = True
    End Sub
    Private Sub Command3_Click()
    Dim z As Byte
    For z = 0 To 89
    numero(z).Caption = "" & z + 1 & " "
    numero(z).Enabled = True
    Next
    End Sub
    Private Sub numero_Click(Index As Integer)
    If listanumeriscelti.Enabled = True Then
        If numero(Index).BackColor = vbGreen Then
        numero(Index).BackColor = 52879
         Dim l As Long
  If listanumeriscelti.ListCount > 0 Then
    'MsgBox "la lista non e' vuota e ci sono " & listanumeriscelti.ListCount & " elementi! "
    For l = 0 To listanumeriscelti.ListCount - 1
    'MsgBox l & " - " & listanumeriscelti.List(l)
    If numero(Index).Caption = listanumeriscelti.List(l) Then
  '  MsgBox "il numero cliccato " & numero(Index).Caption & " è uguale ad questo numero presente nella lista! " & listanumeriscelti.List(l) & " avente questo valore di indice " & l & " e adesso lo rimuovo! :) "
   listanumeriscelti.RemoveItem l
  End If
  Next
  End If
     Else
    numero(Index).BackColor = vbGreen
    'Beep
    'If NumeroUscito(numero(Index).Caption) = "SI" Then
    'GoTo Estrazione
    'Else
   ' NumeroUscito(numero(Index).Caption) = "SI"
    'lblNumero.Caption = NumeroEstratto
        listanumeriscelti.AddItem(numero(Index).Caption)
        'Cartella = Cartella + 1
     '   End If
    ' If Cartella = 90 Then
    ' For Index = 0 To 89
    ' numero(Index).Enabled = False
    ' Next
    ' End If
    Dim v As Byte
        End If ' x backcolor
        End If ' x enabled listanumeriscelti
    If listanumerisceltiB.Enabled = True Then
    If numero(Index).BackColor = vbGreen Then
    numero(Index).BackColor = 52879
    'Dim l As Long
  If listanumerisceltiB.ListCount > 0 Then
  'MsgBox "la lista non e' vuota e ci sono " & listanumeriscelti.ListCount & " elementi! "
  For l = 0 To listanumerisceltiB.ListCount - 1
  'MsgBox l & " - " & listanumeriscelti.List(l)
  If numero(Index).Caption = listanumerisceltiB.List(l) Then
 ' MsgBox "il numero cliccato " & numero(Index).Caption & " è uguale ad questo numero presente nella lista! " & listanumeriscelti.List(l) & " avente questo valore di indice " & l & " e adesso lo rimuovo! :) "
 listanumerisceltiB.RemoveItem l
  End If
  Next
  End If
        Else
    numero(Index).BackColor = vbGreen
   ' Beep
    If NumeroUscito(numero(Index).Caption) = "SI" Then
    'GoTo Estrazione
    Else
    NumeroUscito(numero(Index).Caption) = "SI"
    'lblNumero.Caption = NumeroEstratto
    listanumerisceltiB.AddItem(numero(Index).Caption)
   ' Cartella = Cartella + 1
    End If
    ' If Cartella = 90 Then
    ' For Index = 0 To 89
    ' numero(Index).Enabled = False
    ' Next
    ' End If
    'Dim v As Byte
        End If ' x backcolor
        End If ' x enabled listanumerisceltiB
    End Sub
    Private Sub Command4_Click()
    listanumeriscelti.Clear
    listanumerisceltiB.Clear
    convergenti.Clear
    convergentiesportati.Text = ""
    Dim w As Byte
    For w = 0 To 89
    numero(w).Caption = ""
    numero(w).Enabled = False
    Next
 '   Cartella = 0
    Erase NumeroUscito
    End Sub
    Private Sub Command5_Click()
    listanumeriscelti.Clear
    listanumerisceltiB.Clear
    Dim y As Byte
    For y = 0 To 89
    numero(y).BackColor = 52879
    Next
    End Sub
    Private Sub Command6_Click()
    Dim k As Byte, j As Byte, h As Byte
convergenti.Clear
   ' Cartella = 0
    Erase NumeroUscito
    For k = 0 To 89
    numero(k).Enabled = True
    Next
    For h = 0 To 89
    numero(h).Caption = "" & h + 1 & " "
    Next
    For j = 0 To 89
    numero(j).BackColor = 52879
    Next j
    End Sub
    Private Sub Command7_Click()
        listanumeriscelti.Enabled = True
        listanumerisceltiB.Enabled = True
    End Sub
    Private Sub inseriscigruppoA_Click()
     'inizializzazione listanumeriscelti
    listanumeriscelti.Clear
    Erase NumeroUscito
        listanumeriscelti.Enabled = True
        listanumerisceltiB.Enabled = False
    End Sub
    Private Sub inseriscigruppoB_Click()
     'inizializzazione listanumerisceltiB
    listanumerisceltiB.Clear
    Erase NumeroUscito
        listanumerisceltiB.Enabled = True
        listanumeriscelti.Enabled = False
    End Sub
    Private Sub attivaconfrontoAB_Click()
    End Sub
    Private Sub rilevaconvergentiAB_Click()
      If listanumeriscelti.ListCount > 0 And listanumerisceltiB.ListCount > 0 Then
         Dim A As Byte, B As Byte
         For A = 0 To listanumeriscelti.ListCount - 1
          For B = 0 To listanumerisceltiB.ListCount - 1
    'MsgBox l & " - " & listanumeriscelti.List(l)
    If listanumeriscelti.List(A) = listanumerisceltiB.List(B) Then
    MsgBox "questo valore " & listanumeriscelti.List(A) & " è comune ad entrambi i gruppi A e B"
    convergenti.AddItem(listanumeriscelti.List(A))
    ' Else
    ' divergenti.AddItem(listanumeriscelti.List(A))
    End If
    Next
    Next
         End If ' x listanumeriscelti
         '-------------------------------------------
    '  If listanumeriscelti.ListCount > 0 And listanumerisceltiB.ListCount > 0 Then
    '      For A = 0 To listanumeriscelti.ListCount - 1
    '       For B = 0 To listanumerisceltiB.ListCount - 1
    ' 'MsgBox l & " - " & listanumeriscelti.List(l)
    ' ' If listanumeriscelti.List(A) <> listanumerisceltiB.List(B) Then
    ' ' MsgBox "questo valore " & listanumeriscelti.List(A) & " NON è comune ad entrambi i gruppi A e B"
    ' ' divergenti.AddItem(listanumeriscelti.List(A))
    ' ' End If
    ' Next
    ' Next
    '      End If ' x listanumerisceltiB
    End Sub
    Private Sub rilevadivergentiAB_Click()
             If listanumeriscelti.ListCount > 0 And listanumerisceltiB.ListCount > 0 Then
      Dim C As Byte, D As Byte
         For C = 0 To listanumeriscelti.ListCount - 1
          For D = 0 To listanumerisceltiB.ListCount - 1
    'MsgBox l & " - " & listanumeriscelti.List(l)
    If listanumeriscelti.List(C) <> listanumerisceltiB.List(D) Then
    MsgBox "questo valore " & listanumeriscelti.List(C) & " NON è comune ad entrambi i gruppi A e B"
    divergenti.AddItem(listanumeriscelti.List(D))
    End If
    Next
    Next
         End If ' x listanumerisceltiB
    End Sub
    Private Sub Command8_Click()
        Dim c As Byte
        For c = 0 To convergenti.ListCount - 1
        convergentiesportati.Text = convergentiesportati.Text + " " + convergenti.List(c)
        Next
    End Sub
        End Class

screenshotdiesempioprogettinoconvergentidivergenti.jpg

Non capisco perchè con i convergenti funziona e con i divergenti no... tanto è che ne ho commentato disattivandole le relative righe di codice :rolleyes:

'Notte a tutti 👋:)
 

Allegati

Ultima modifica:
tom se posti il progetto c'è una possibilità che io possa aprirlo e dargli un 'occhiata.. qui non abbiamo script che basta fare copia e incolla , bisogna avere pure l'nterfaccia , mica pretenderai che la faccio io per testare il tuo script che gia la ha .,..

posta il progetto quindi ..


bonanotte a domani.
 
Buongiorno a tutti, qui e' un libro di Francesco Balena, noto esperto VB6, ad integrazione del mio post di ieri che fa' seguito alle note di SLDR il quale giustamente consiglia di focalizzare l'attenzione sulla programmazione in Visual Basic 6, poiche' direttamente fruibile attraverso twinBasic.

Credo di aver trovato il miglior testo disponibile in italiano (se riuscirete a recuperarne una copia con il relativo CD) ed esiste anche l'edizione in inglese, per conoscere praticamente tutto su VB6.

Il titolo in lingua Italiana e' Programmare Microsoft Visual Basic 6 pubblicato da Microsoft Press nel lontano 1999 e stampato da Mondadori.

Si puo' vedere il vasto contenuto del libro, per capire se e' ben tagliato sulle vostre esigenze, attraverso il sito sotto riportato. Buona lettura


1677471942265.png
 
Ultima modifica:
Codice:
Class Form1
    Dim NumeroUscito(1 To 90) As String
    Dim Cartella As Byte
        Sub New()
        End Sub
    Public Sub Form_Load()
    Form1.Show
    Dim x As Byte
    For x = 0 To 89
    numero(x).Visible = True
    numero(x).Enabled = False
    Next x
    End Sub
    Private Sub Command1_Click()
    Dim x As Byte
    For x = 0 To 89
    numero(x).Visible = True
    numero(x).Enabled = False
    Next x
    Command2.Visible = True
     End Sub
    Private Sub Command2_Click()
    Dim y As Byte
    For y = 0 To 89
    numero(y).Visible = False
    Next y
    Command1.Visible = True
    End Sub
    Private Sub Command3_Click()
    Dim z As Byte
    For z = 0 To 89
    numero(z).Caption = "" & z + 1 & " "
    numero(z).Enabled = True
    Next
    End Sub
    Private Sub numero_Click(Index As Integer)
    If listanumeriscelti.Enabled = True Then
        If numero(Index).BackColor = vbGreen Then
        numero(Index).BackColor = 52879
         Dim l As Long
  If listanumeriscelti.ListCount > 0 Then
    'MsgBox "la lista non e' vuota e ci sono " & listanumeriscelti.ListCount & " elementi! "
    For l = 0 To listanumeriscelti.ListCount - 1
    'MsgBox l & " - " & listanumeriscelti.List(l)
    If numero(Index).Caption = listanumeriscelti.List(l) Then
  '  MsgBox "il numero cliccato " & numero(Index).Caption & " è uguale ad questo numero presente nella lista! " & listanumeriscelti.List(l) & " avente questo valore di indice " & l & " e adesso lo rimuovo! :) "
   listanumeriscelti.RemoveItem l
  End If
  Next
  End If
     Else
    numero(Index).BackColor = vbGreen
    'Beep
    'If NumeroUscito(numero(Index).Caption) = "SI" Then
    'GoTo Estrazione
    'Else
   ' NumeroUscito(numero(Index).Caption) = "SI"
    'lblNumero.Caption = NumeroEstratto
        listanumeriscelti.AddItem(numero(Index).Caption)
        'Cartella = Cartella + 1
     '   End If
    ' If Cartella = 90 Then
    ' For Index = 0 To 89
    ' numero(Index).Enabled = False
    ' Next
    ' End If
    Dim v As Byte
        End If ' x backcolor
        End If ' x enabled listanumeriscelti
    If listanumerisceltiB.Enabled = True Then
    If numero(Index).BackColor = vbGreen Then
    numero(Index).BackColor = 52879
    'Dim l As Long
  If listanumerisceltiB.ListCount > 0 Then
  'MsgBox "la lista non e' vuota e ci sono " & listanumeriscelti.ListCount & " elementi! "
  For l = 0 To listanumerisceltiB.ListCount - 1
  'MsgBox l & " - " & listanumeriscelti.List(l)
  If numero(Index).Caption = listanumerisceltiB.List(l) Then
 ' MsgBox "il numero cliccato " & numero(Index).Caption & " è uguale ad questo numero presente nella lista! " & listanumeriscelti.List(l) & " avente questo valore di indice " & l & " e adesso lo rimuovo! :) "
 listanumerisceltiB.RemoveItem l
  End If
  Next
  End If
        Else
    numero(Index).BackColor = vbGreen
   ' Beep
    If NumeroUscito(numero(Index).Caption) = "SI" Then
    'GoTo Estrazione
    Else
    NumeroUscito(numero(Index).Caption) = "SI"
    'lblNumero.Caption = NumeroEstratto
    listanumerisceltiB.AddItem(numero(Index).Caption)
   ' Cartella = Cartella + 1
    End If
    ' If Cartella = 90 Then
    ' For Index = 0 To 89
    ' numero(Index).Enabled = False
    ' Next
    ' End If
    'Dim v As Byte
        End If ' x backcolor
        End If ' x enabled listanumerisceltiB
    End Sub
    Private Sub Command4_Click()
    listanumeriscelti.Clear
    listanumerisceltiB.Clear
    convergenti.Clear
    convergentiesportati.Text = ""
    Dim w As Byte
    For w = 0 To 89
    numero(w).Caption = ""
    numero(w).Enabled = False
    Next
 '   Cartella = 0
    Erase NumeroUscito
    End Sub
    Private Sub Command5_Click()
    listanumeriscelti.Clear
    listanumerisceltiB.Clear
    Dim y As Byte
    For y = 0 To 89
    numero(y).BackColor = 52879
    Next
    End Sub
    Private Sub Command6_Click()
    Dim k As Byte, j As Byte, h As Byte
convergenti.Clear
   ' Cartella = 0
    Erase NumeroUscito
    For k = 0 To 89
    numero(k).Enabled = True
    Next
    For h = 0 To 89
    numero(h).Caption = "" & h + 1 & " "
    Next
    For j = 0 To 89
    numero(j).BackColor = 52879
    Next j
    End Sub
    Private Sub Command7_Click()
        listanumeriscelti.Enabled = True
        listanumerisceltiB.Enabled = True
    End Sub
    Private Sub inseriscigruppoA_Click()
     'inizializzazione listanumeriscelti
    listanumeriscelti.Clear
    Erase NumeroUscito
        listanumeriscelti.Enabled = True
        listanumerisceltiB.Enabled = False
    End Sub
    Private Sub inseriscigruppoB_Click()
     'inizializzazione listanumerisceltiB
    listanumerisceltiB.Clear
    Erase NumeroUscito
        listanumerisceltiB.Enabled = True
        listanumeriscelti.Enabled = False
    End Sub
    Private Sub attivaconfrontoAB_Click()
    End Sub
    Private Sub rilevaconvergentiAB_Click()
      If listanumeriscelti.ListCount > 0 And listanumerisceltiB.ListCount > 0 Then
         Dim A As Byte, B As Byte
         For A = 0 To listanumeriscelti.ListCount - 1
          For B = 0 To listanumerisceltiB.ListCount - 1
    'MsgBox l & " - " & listanumeriscelti.List(l)
    If listanumeriscelti.List(A) = listanumerisceltiB.List(B) Then
    MsgBox "questo valore " & listanumeriscelti.List(A) & " è comune ad entrambi i gruppi A e B"
    convergenti.AddItem(listanumeriscelti.List(A))
    ' Else
    ' divergenti.AddItem(listanumeriscelti.List(A))
    End If
    Next
    Next
         End If ' x listanumeriscelti
         '-------------------------------------------
    '  If listanumeriscelti.ListCount > 0 And listanumerisceltiB.ListCount > 0 Then
    '      For A = 0 To listanumeriscelti.ListCount - 1
    '       For B = 0 To listanumerisceltiB.ListCount - 1
    ' 'MsgBox l & " - " & listanumeriscelti.List(l)
    ' ' If listanumeriscelti.List(A) <> listanumerisceltiB.List(B) Then
    ' ' MsgBox "questo valore " & listanumeriscelti.List(A) & " NON è comune ad entrambi i gruppi A e B"
    ' ' divergenti.AddItem(listanumeriscelti.List(A))
    ' ' End If
    ' Next
    ' Next
    '      End If ' x listanumerisceltiB
    End Sub
    Private Sub rilevadivergentiAB_Click()
             If listanumeriscelti.ListCount > 0 And listanumerisceltiB.ListCount > 0 Then
      Dim C As Byte, D As Byte
         For C = 0 To listanumeriscelti.ListCount - 1
          For D = 0 To listanumerisceltiB.ListCount - 1
    'MsgBox l & " - " & listanumeriscelti.List(l)
    If listanumeriscelti.List(C) <> listanumerisceltiB.List(D) Then
    MsgBox "questo valore " & listanumeriscelti.List(C) & " NON è comune ad entrambi i gruppi A e B"
    divergenti.AddItem(listanumeriscelti.List(D))
    End If
    Next
    Next
         End If ' x listanumerisceltiB
    End Sub
    Private Sub Command8_Click()
        Dim c As Byte
        For c = 0 To convergenti.ListCount - 1
        convergentiesportati.Text = convergentiesportati.Text + " " + convergenti.List(c)
        Next
    End Sub
        End Class

Vedi l'allegato 2254314

Non capisco perchè con i convergenti funziona e con i divergenti no... tanto è che ne ho commentato disattivandole le relative righe di codice :rolleyes:

'Notte a tutti 👋:)
Ciao Tom, mi piace il look del tuo form (rileva divergenti AB) e per questo ti chiedo se puoi fare un piccolo screenshot relativo alle references del tuo progetto... perche' mi aggradano davvero molto gli angoli stondati del form visualizzato :)
 
Ultima modifica:
tom se posti il progetto c'è una possibilità che io possa aprirlo e dargli un 'occhiata.. qui non abbiamo script che basta fare copia e incolla , bisogna avere pure l'nterfaccia , mica pretenderai che la faccio io per testare il tuo script che gia la ha .,..

posta il progetto quindi ..


bonanotte a domani.

Buondì Luì l'ho messo in allegato sopra al relativo post. Grz :)

In merito a questo invece...

Ciao Tom, mi piace il look del tuo form (rileva divergenti AB) e per questo ti chiedo se puoi fare un piccolo screenshot relativo alle references del tuo progetto... perche' mi aggradano davvero molto gli angoli stondati del form visualizzato :)

Grazie Rookie, ma non ho chiaro nè da cosa possa dipendere (a meno che non si tratti solo di un effetto ottico dell'immagine) nè a cosa ti riferisci con "screen shot relativo alle references" perchè se guardo le ALL AVAILABLE COM REFERENCES in questo caso non ho nulla di flaggato del tipo VSDLLGIOCHI... :unsure:

Spero tu possa comunque vedere le configurazioni che ti hanno incuriosito, e che hai intravisto dallo screen shot dell'interfaccia,
dal progetto in txt (da rinominare in .twinproj) che ho allegato sopra nel relativo msg #1812.

Infine...

Colgo l'occasione per riportare all'attenzione tua e di Luigi su quanto espresso pochi post + indietro da ilegend (Msg #1794 a questo link . Idea che appoggio totalmente e che penso dovreste avviare voi due, in quanto ideatori e colonne portanti dell'intera spettacolare iniziativa, in un altro thread ad essa solo dedicato.

👋:)
 
Ultima modifica:
Buondì Luì l'ho messo in allegato sopra al relativo post. Grz :)

In merito a questo invece...



Grazie Rookie, ma non ho chiaro nè da cosa possa dipendere (a meno che non si tratti solo di un effetto ottico dell'immagine) nè a cosa ti riferisci con "screen shot relativo alle references" perchè se guardo le ALL AVAILABLE COM REFERENCES in questo caso non ho nulla di flaggato del tipo VSDLLGIOCHI... :unsure:

Spero tu possa comunque vedere le configurazioni che ti hanno incuriosito, e che hai intravisto dallo screen shot dell'interfaccia,
dal progetto in txt (da rinominare in .twinproj) che ho allegato sopra nel relativo msg #1812.

Infine...

Colgo l'occasione per riportare all'attenzione tua e di Luigi su quanto espresso pochi post + indietro da ilegend (Msg #1794 a questo link . Idea che appoggio totalmente e che penso dovreste avviare voi due, in quanto ideatori e colonne portanti dell'intera spettacolare iniziativa, in un altro thread ad essa solo dedicato.

👋:)
Tom, grazie per la risposta eppero' a me serve solo il package dei Controlli che ha determinato l'aspetto della tua form, cioe' mi serve leggere i riferimenti che si trovano nella finestra alta delle referenze (settings), dove si trova anche la DLL di SLDR. Solo questo. Per spiegarmi meglio ho preso il tuo progetto eppero' nella tua form gli angoli appaiono esattamente come i miei. Forse dipende dalla versione di windows, stai usando win11?

1677485144717.png

Per quanto riguarda il repository dei progetti, puo' essere un'ottima idea se viene ben strutturata. Appena avremo raccolto un congruo numero di progetti tali da poter essere degna parte di un Bouquet lo affronteremo insieme a Luigi.

Sto cercando di far dimagrire il tuo progetto, ha troppi schicki micki :) e se ti va bene, ridotto a questo modo (sotto), gioco un po' a fare il chirurgo per asportare tutto quello che non serve... che e' piu' di cio' che rimarra'

1677486572260.png



Il tuo progetto e' l'emblema di una pasticceria (con la p minuscola) dove metti insieme tanti ingredienti che poi dovrebbero da soli produrre diversi dolciumi. Infatti il tuo form contiene almeno 7 (sette) esempi diversi di usare i controlli che hai assembrato (ho scritto assembrato NON assemblato). Ho scelto, arbitrariamente, di far funzionare il settimo. Per gli altri 6, creati sei progetti diversi, lasciando solo quel che serve per ogni esempio che vuoi definire e far funzionare.


E... dulcis in fundo, qui nella Sub numero_click c'e' l'evidenza della prova del tuo uso di una Impastatrice universale !!!

Codice:
 Private Sub numero_Click(Index As Integer)
   
    If listanumeriscelti.Enabled = True Then
 
 
   
        If numero(Index).BackColor = vbGreen Then
           numero(Index).BackColor = 52879
         Dim l As Long
  If listanumeriscelti.ListCount > 0 Then
    'MsgBox "la lista non e' vuota e ci sono " & listanumeriscelti.ListCount & " elementi! "
    For l = 0 To listanumeriscelti.ListCount - 1
    'MsgBox l & " - " & listanumeriscelti.List(l)
    If numero(Index).Caption = listanumeriscelti.List(l) Then
  '  MsgBox "il numero cliccato " & numero(Index).Caption & " è uguale ad questo numero presente nella lista! " & listanumeriscelti.List(l) & " avente questo valore di indice " & l & " e adesso lo rimuovo! :) "
   listanumeriscelti.RemoveItem l
  End If
  Next
  End If
 
 
 
     Else
    numero(Index).BackColor = vbGreen
   
        listanumeriscelti.AddItem(numero(Index).Caption)
   
    Dim v As Byte
 
        End If ' x backcolor
        End If ' x enabled listanumeriscelti


    If listanumerisceltiB.Enabled = True Then
   


   
    If numero(Index).BackColor = vbGreen Then
   
    numero(Index).BackColor = 52879
       
    'Dim l As Long

 
  If listanumerisceltiB.ListCount > 0 Then
 
  'MsgBox "la lista non e' vuota e ci sono " & listanumeriscelti.ListCount & " elementi! "
 
  For l = 0 To listanumerisceltiB.ListCount - 1
 
  'MsgBox l & " - " & listanumeriscelti.List(l)
 
  If numero(Index).Caption = listanumerisceltiB.List(l) Then
 
 ' MsgBox "il numero cliccato " & numero(Index).Caption & " è uguale ad questo numero presente nella lista! " & listanumeriscelti.List(l) & " avente questo valore di indice " & l & " e adesso lo rimuovo! :) "
 
 listanumerisceltiB.RemoveItem l

 
  End If
 
 
  Next
 
  End If
 

 
       
        Else
   
   
   
    numero(Index).BackColor = vbGreen
   ' Beep

    If NumeroUscito(numero(Index).Caption) = "SI" Then
    'GoTo Estrazione
 
    Else
 
    NumeroUscito(numero(Index).Caption) = "SI"
    'lblNumero.Caption = NumeroEstratto
 

   
    listanumerisceltiB.AddItem(numero(Index).Caption)
   
   ' Cartella = Cartella + 1
   
    End If

    ' If Cartella = 90 Then

    ' For Index = 0 To 89

    ' numero(Index).Enabled = False

    ' Next

    ' End If

 
    'Dim v As Byte
        End If ' x backcolor
        End If ' x enabled listanumerisceltiB



    End Sub
 
Ultima modifica:
non è esclusco che possa essere windows11 ad avere le finestre rotonde .. non lo so perche non l'ho mai visto
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 26 novembre 2024
    Bari
    35
    16
    24
    41
    85
    Cagliari
    89
    30
    10
    81
    72
    Firenze
    38
    60
    16
    13
    28
    Genova
    52
    15
    80
    08
    53
    Milano
    33
    77
    06
    54
    73
    Napoli
    01
    50
    64
    35
    36
    Palermo
    02
    01
    19
    33
    62
    Roma
    33
    48
    72
    47
    68
    Torino
    62
    28
    18
    75
    31
    Venezia
    03
    54
    27
    14
    71
    Nazionale
    02
    44
    27
    86
    78
    Estrazione Simbolotto
    Torino
    30
    07
    39
    14
    19

Ultimi Messaggi

Indietro
Alto