Novità

Mente da programmatore

perfetto , si capisce subito che pure la proprietà text la si puo far impostare internamente percio cambia il nome della funzione da ReadTagFromFile
a New , deve diventare sub New (sFile as string )
poi quando istanzi l'oggeto gli passi i lpercorso , internamente oltre a quello che gia fa valorizza pure la proprieta text
 
Codice:
    Sub CaricaItemCombo()
        Dim i As Integer
        Dim FileInPath() As String
        FileInPath = GetAllnameFile(GetDirPreselezioni)
        Dim cComb As clsItemPreselezione
        For k = 0 To UBound(FileInPath)
            cComb = New clsItemPreselezione(GetDirPreselezioni() & FileInPath(k) & ".csv")
            ComboBox1.Items.Add(cComb)
        Next
    End Sub

Codice:
Imports System.IO
Public Class clsItemPreselezione
    Inherits clsItemCombo
    Sub New(sFile As String)
        MyBase.Text = IO.Path.GetFileNameWithoutExtension(sFile)
        MyBase.Tag = LeggiRigaCsv(sFile)

    End Sub
    Private Function LeggiRigaCsv(File As String) As String
        Dim sLine As String
        Dim aV() As String
        Dim str As New StreamReader(File)
        sLine = str.ReadLine
        str.Close()
        str.Dispose()
        Return sLine
    End Function
End Class
 
ottimo se funziona tutto a questo punto all'evento click della combo devi usare directcast per convertire l'oggetto selezionato nella combo in un oggetto del tipo previsto

if not isnothing(combo1.selecteditem) then
dim c as clsItemPreselezione = directcast(combo1.selecteditem , clsitempreselezione )

CtlSelezionaNumeri1.SetValueFromStringaNum(c.tag)
end if


dimmi se funziona
 
perfettamente

Codice:
    Private Sub ComboBox1_SelectedValueChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedValueChanged
        If Not IsNothing(ComboBox1.SelectedItem) Then
            Dim c As clsItemPreselezione = DirectCast(ComboBox1.SelectedItem, clsItemPreselezione)
            CtlSelezionaNumeri1.SetValueFromStringaNum(c.Tag)
        End If
    End Sub
 
ok allora adesso dobbiamo fare una funzione nel modulo assistente

Codice:
Function SelezionaNumeri ( byref  aRetNumeri() as integer )   as integer

in questa funzione istanzi un nuovo form selezionanumeri e lo mostri in modo modale
se l'utente preme ok fai il solito giochetto del tag e fai tornare nell'apposito parametro della funzione il risultato dei numeri selezionati che otterrai chiamando la funzione

del controllo selezionanumeri frm.ctlSelezionaNumeri1.GetArrayNumSelezionati (aRetNumeri)

invece come valore di ritorno darai frm.ctlSelezionaNumeri1.QNumeriSelezionati

se preme annullla invece fai tornare 0 la funzione

ovviamnete in tutti i casi scarica il form con dispose al termine
 
Codice:
    Function SelezionaNumeri(ByRef aRetNumeri() As Integer) As Integer
        Dim frm As New frmSelNumeri
        frm.ShowDialog()
        If frm.Tag = "Ok" Then
            frm.CtlSelezionaNumeri1.GetArrayNumSelezionati(aRetNumeri)
            Return frm.CtlSelezionaNumeri1.QNumeriSelezionati
        Else
            Return 0
        End If       
    End Function
 
uuuuuh davvero:

Codice:
    Function SelezionaNumeri(ByRef aRetNumeri() As Integer) As Integer
        Dim frm As New frmSelNumeri
        frm.ShowDialog()
        If frm.Tag = "Ok" Then
            frm.CtlSelezionaNumeri1.GetArrayNumSelezionati(aRetNumeri)
            Return frm.CtlSelezionaNumeri1.QNumeriSelezionati
            frm.Close()
            frm.Dispose()
        Else
            Return 0
            frm.Close()
            frm.Dispose()
        End If
    End Function

quindi nel button del form stalunghette avvio questa funzione scommetto :D
 
veid si vede che hai la stoffa , pure qualcunaltro ce l ha ma latita :)
è esatto , ancora uan cosa potrebeb darsi che questa funzione la lanciamo per editare una selezione di numeri gia esistente , quindi prima dello show dialog valuta se l'array passato non sia nothing ,se non lo è fai un ciclo e sesleziona i numeri presenti nell'aray
 
attenzione , quando uno fa return la funzione esce .. quindi ul tuo dispose lo fa col kyzer ..
semmai sostituisci return con SelezionaNumeri =
 
Quindi :

Codice:
    Function SelezionaNumeri(ByRef aRetNumeri() As Integer) As Integer
        Dim frm As New frmSelNumeri
        Dim i As Integer
        If IsNothing(aRetNumeri) Then
            frm.ShowDialog()
            If frm.Tag = "Ok" Then
                frm.CtlSelezionaNumeri1.GetArrayNumSelezionati(aRetNumeri)
                SelezionaNumeri = frm.CtlSelezionaNumeri1.QNumeriSelezionati
                frm.Close()
                frm.Dispose()
            Else
                SelezionaNumeri = 0
                frm.Close()
                frm.Dispose()
            End If
        Else
            For k As Integer = 1 To UBound(aRetNumeri)
                i += 1
                frm.CtlSelezionaNumeri1.SetValue(aRetNumeri(k), i)
            Next
        End If
    End Function

E poi

Codice:
Public Class frmStatLung
    Private aRetNumeri() As Integer
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        SelezionaNumeri(aRetNumeri)
    End Sub
End Class
 
Dovrebbe ripetersi la cosa ma con i numeri precaricati:

Codice:
    Function SelezionaNumeri(ByRef aRetNumeri() As Integer) As Integer
        Dim frm As New frmSelNumeri
        Dim i As Integer
        If IsNothing(aRetNumeri) Then
            frm.ShowDialog()
            If frm.Tag = "Ok" Then
                frm.CtlSelezionaNumeri1.GetArrayNumSelezionati(aRetNumeri)
                SelezionaNumeri = frm.CtlSelezionaNumeri1.QNumeriSelezionati
                frm.Close()
                frm.Dispose()
            Else
                SelezionaNumeri = 0
                frm.Close()
                frm.Dispose()
            End If
        Else
            For k As Integer = 1 To UBound(aRetNumeri)
                i += 1
                frm.CtlSelezionaNumeri1.SetValue(aRetNumeri(k), i)
            Next
            frm.ShowDialog()

            If frm.Tag = "Ok" Then
                frm.CtlSelezionaNumeri1.GetArrayNumSelezionati(aRetNumeri)
                SelezionaNumeri = frm.CtlSelezionaNumeri1.QNumeriSelezionati
                frm.Close()
                frm.Dispose()
            Else
                SelezionaNumeri = UBound(aRetNumeri)
                frm.Close()
                frm.Dispose()
            End If
        End If
    End Function
 
ok ma prima dobiamo dedicarci ad un 'altra cosa
modificare i ltuo controllo delle ruote , oppure farne un altro molto simile , forse è meglio questa seconda ipotesi
in pratica ci serve un controllo con 5 caselline per impostare le posizioni sulle quali opera la statistica
 
Codice:
 Function SelezionaNumeri(ByRef aRetNumeri() As Integer) As Integer
        Dim frm As New frmSelNumeri
        Dim i As Integer
        If not IsNothing(aRetNumeri) Then
               for k = 1 to eRetNumeri.getupperbound(0)
                     frm.CtlSelezionanumeri.SetValue ( aRetNumeri (k) , true)
               next
        end if

 poi fai come prima
 
dovresti fare un nuovo usercontrol come quell odelel ruote ma con 5 pulsanti e con il testo 1,2,3,4,5
serve per selezioanre le posizioni
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 11 gennaio 2025
    Bari
    73
    43
    01
    58
    81
    Cagliari
    69
    60
    18
    02
    10
    Firenze
    25
    32
    18
    55
    54
    Genova
    48
    05
    40
    34
    69
    Milano
    10
    07
    70
    44
    79
    Napoli
    11
    89
    01
    34
    80
    Palermo
    37
    80
    82
    44
    77
    Roma
    78
    04
    38
    39
    56
    Torino
    08
    13
    30
    27
    24
    Venezia
    56
    75
    36
    18
    70
    Nazionale
    63
    83
    19
    31
    80
    Estrazione Simbolotto
    Bari
    35
    34
    12
    23
    20
Indietro
Alto