Novità

Mente da programmatore

Edoardo_95

Advanced Member
Codice:
    Function SelezionaNumeriRuoteESorte(ByRef sRetNumeri As String, ByRef aRNumeri() As Integer, ByRef aRetRuote() As Boolean, ByRef nRetSorte As Integer, ByRef nRetInizio As Integer, ByRef nRetFine As Integer, ByRef aRetPos() As Boolean) As Boolean
        Dim frm As New FrmSelNumeri
        Dim frmS As New frmStatLung
        Dim aRuote() As Boolean = Nothing
        Dim aPos() As Boolean = Nothing
        frm.ImpostaModalitaNumeriRuoteESelezione()

        If sRetNumeri.Trim <> "" Then
            Dim aRetNumeri() As Integer = Nothing
            GetArrayNumeriFromString(sRetNumeri, aRetNumeri)
            For k = 1 To aRetNumeri.GetUpperBound(0)
                frm.CtlSelezionaNumeri1.SetValue(aRetNumeri(k), True)
            Next
        End If

        If Not IsNothing(aRetRuote) Then
            frm.CltSelRuote1.SetCheckSelezionate(aRetRuote)
        End If
        If nRetSorte <> 0 Then
            Call SelezionaItemCombo(frm.cmbSorte, nRetSorte)
        End If
        If nRetInizio <> 0 Then
            frm.ScrollBarInizio.Value = ConvertToInt(nRetInizio)
        End If
        If nRetFine <> 0 Then
            frm.ScrollBarFine.Value = ConvertToInt(nRetFine)
        End If
        If Not IsNothing(aRetPos) Then
            frm.CtlSelPosizione1.SetCheckSelezionate(aRetPos)
        End If
        frm.ShowDialog()
        If frm.Tag = "Ok" Then
            sRetNumeri = frm.CtlSelezionaNumeri1.GetStringaNumeri()
            GetArrayNumeriFromString(sRetNumeri, aRNumeri)
            frm.CltSelRuote1.GetCheckSelezionate(aRetRuote)
            nRetSorte = ConvertToInt(frm.cmbSorte.Text)
            nRetInizio = frm.ScrollBarInizio.Value
            nRetFine = frm.ScrollBarFine.Value
            frm.CtlSelPosizione1.GetCheckSelezionate(aRetPos)
            If sRetNumeri <> "" AndAlso Not IsNothing(aRetRuote) AndAlso nRetSorte <> 0 AndAlso nRetInizio <> 0 AndAlso nRetFine <> 0 AndAlso Not IsNothing(aRetPos) Then
                SelezionaNumeriRuoteESorte = True
                frm.Close()
                frm.Dispose()
            Else
                SelezionaNumeriRuoteESorte = False
                frm.Close()
                frm.Dispose()
            End If
        Else
            SelezionaNumeriRuoteESorte = False
            frm.Close()
            frm.Dispose()
        End If
    End Function


Codice:
    Private Sub btnScegliNumeri_Click(sender As Object, e As EventArgs) Handles btnScegliNumeri.Click
        Dim frz As New struct_formazione
        Dim aNumeri() As Integer
        Dim aRuote() As Boolean = Nothing
        Dim aPos() As Boolean = Nothing
        Dim nSorte As Integer
        Dim Inizio As Integer
        Dim fine As Integer
        frmMain.CltSelRuote1.GetCheckSelezionate(aRuote)
        If Not IsNothing(cmbSorte.SelectedItem) Then
            nSorte = DirectCast(cmbSorte.SelectedItem, ClsItemCombo).ItemData
        End If
        Me.CtlSelPosizione1.GetCheckSelezionate(aPos)
        Inizio = frmMain.CtlRangeEstrazioni1.Inizio
        fine = frmMain.CtlRangeEstrazioni1.Fine

        If SelezionaNumeriRuoteESorte(cmbNumeri.Text, aNumeri, aRuote, nSorte, Inizio, fine, aPos) = True Then
            If frz.Inizializza(aNumeri, aRuote, nSorte, Inizio, fine, aPos) Then
                cArchivio.StatFormazione(frz)
                Dim itm As ListViewItem = LvLunghette.Items.Add(InserisciDescrizioneNumeri)
                itm.SubItems.Add((ArrayNumeriToString(aNumeri)))
                itm.SubItems.Add(RuoteBToString(aRuote))
                itm.SubItems.Add(frz.Sorte)
                itm.SubItems.Add(frz.Ritardo)
                itm.SubItems.Add(frz.RitardoMax)
                itm.SubItems.Add(frz.IncrRitMax)
                itm.SubItems.Add(frz.Frequenza)
                itm.SubItems.Add(frz.Presenze)
                itm.SubItems.Add(frz.Inizio)
                itm.SubItems.Add(frz.Fine)
                itm.SubItems.Add(ArrayNumeriToString(frz.aPosizioni))
            End If
        End If
    End Sub
 

Edoardo_95

Advanced Member
 
L

LuigiB

Guest
benissimo , mi sembra che con questa finestra abbiamo fatto.
Quindi ora posta gli ultimi sorgenti ma anche separato uno zip con l'eseguibile , spero che qualche altro ci aiuti a stressare un po questa parte del programma per vedere se ci sono errori o per suggerire qualche modifica.

nel frattempo noi andremo a gestire la parte degli archivi paralleli per posizione come sono presenti anche in spaziometria

metti una finestra come questa e poi aggiungi nelle classi il file esistente che gia dovresti avere clsCreaArchivioParallelo

1638089269737.png
 
L

LuigiB

Guest
ah la famosa colonna con la descrizione l'hai messa all'inizio .. potevi metterla anche alal fine cosi non dovevi cambiare i puntamenti alle colonne,
Anche se teoricamente i puntamenti delle colonna bisognava gestirli con delle costanti in modo che in caso di cambiamenti si andavano a modificare quelle..
 
L

LuigiB

Guest
allora ora scrivo qui le cose che andrebbero modificate , esorto gli altri a fare altri test e ad aiutarci


- Dopo aver premuto il pulsante della statistica svuotare il testo della combobox
- Quando si preme il pulsante 123 per inserire direttamente la formazione e i parametri bisoghna controllare e mandare un messaggio se qualcosa manca
- la statistica delle uscite non deve partire se nella lista principale sono selezionate piu di 1 formazione
- quando alimenti la combobox del grafico imposta per default il primo item selezioanato cosi il grafico si disegna subito
- quando alimenti le liste a inizio procedura metti Me.Cursor = Cursors.WaitCursor e a fine procedura Me.Cursor = Cursors.Deafult
- quando voglio salvare le formazioni se faccio ok anche senza mettere il nome della formazione procede lo stesso


per ora ho visto queste cose qui ..
 
L

LuigiB

Guest
sarebbe interessante un pulsante duplica formazone , in pratica si parte dall'item selezionato , si fa apparire la finestra selezionanumeir e sorte ma poi se si fa ok non viene modificato quell'item ma ne viene aggiunto uno nuovo.
 

Edoardo_95

Advanced Member
allora ora scrivo qui le cose che andrebbero modificate , esorto gli altri a fare altri test e ad aiutarci


- Dopo aver premuto il pulsante della statistica svuotare il testo della combobox
- Quando si preme il pulsante 123 per inserire direttamente la formazione e i parametri bisoghna controllare e mandare un messaggio se qualcosa manca
- la statistica delle uscite non deve partire se nella lista principale sono selezionate piu di 1 formazione
- quando alimenti la combobox del grafico imposta per default il primo item selezioanato cosi il grafico si disegna subito
- quando alimenti le liste a inizio procedura metti Me.Cursor = Cursors.WaitCursor e a fine procedura Me.Cursor = Cursors.Deafult
- quando voglio salvare le formazioni se faccio ok anche senza mettere il nome della formazione procede lo stesso


per ora ho visto queste cose qui ..
Risolto tutto. Per quanto riguarda l'ultimo punto ho messo un "nome default" in modo da localizzarlo nella listbox. Però ho notato un bug. Se il nome immesso e già presente nella lista, sovrascrive il file senza avvisare l'utente. Correggo?
 
L

LuigiB

Guest
e bhe si ... comunque oltre a quello metti un try catch nelal routine che salva il file
poi posta un qualcosa che gli utenti comuni possano scaricare emettersi sul pc , tanto basta che fai uno zip con il file exe e le varie cartelle , poi basta estrarlo in una qualsiasi directory e funziona.
Cos ci aiutano a vedere se c'è qualche problema o qualche miglioria da fare
 
L

LuigiB

Guest
anzi fai un post apposito per mettere gl iaggiornamenti rivolti agli utenti .. non dico di chiamarlo spaziometria.net perche non so dove arriveremo .. però qualcosa di simile ..
 

Edoardo_95

Advanced Member
Ciao cosa bisogna scaricare per testare il nuovo spazio.2.0?
Scarica e scompatta la cartella sul desktop e poi avvia. Creerò una sezione apposita come da suggerimento di LuigiB non appena posso.

 

Mike58

Advanced Member >PLATINUM PLUS<
Un Bravissimo ad Edoardo,la grafica è molto bella.
Mi auguro ormai che stai imparando alla svelta ci saranno nuove implementazioni al programma, sicuramente non mancheranno le richieste, ma vai avanti che comunque anche tacitamente il seguito e l'apprezzamento ci sono.
Se proprio io devo fare una richiesta nel prosieguo , uno spazioNet con qualche codice di base non mi dispacerebbe.

un saluto anche a Luigi
 
L

LuigiB

Guest
Ciao Mike , un caro saluto anche a te.

Edoardo molto importante verifica che la riga evidenziata sia cosi , se non è cosi la devi modificare


1638135801654.png
 
L

LuigiB

Guest
inoltre mi accorgo che sta funzionew torna sempre true ... come tutte le altre che avevi scritto all'inizio .. m isarà sfuggita la correzione
 

Edoardo_95

Advanced Member
benissimo , mi sembra che con questa finestra abbiamo fatto.
Quindi ora posta gli ultimi sorgenti ma anche separato uno zip con l'eseguibile , spero che qualche altro ci aiuti a stressare un po questa parte del programma per vedere se ci sono errori o per suggerire qualche modifica.

nel frattempo noi andremo a gestire la parte degli archivi paralleli per posizione come sono presenti anche in spaziometria

metti una finestra come questa e poi aggiungi nelle classi il file esistente che gia dovresti avere clsCreaArchivioParallelo

Vedi l'allegato 2225789
Form creato e classe inserita
 
L

LuigiB

Guest
ok , allora passiamo agli archivi paralleli come sono presenti in spaziometria.
Nel form che hai creato metti questo codice , naturalmente io ho fatot tutto un modo veloce per dare una traccia , la creazioendell'archivio è demandata ad una classe apposta che eredita dalla classe archivio.

Dimmi se ti manca qualche funzione affinche il codice sotto funzioni. Non Dovrebbe ..
Inoltre cosa che io non ho fatto , devi creare un nuovo valore nel file di configurazione e memorizzare il la quantita di archivi paralleli scelti per la creazione , ora va da1 a 5 ma potrebbe pure adare da1 a 1000 ... tu devi memorizzare i lvalore di quantita scelto perche dopo in fase di aggiornamento estrazioni dobbiam oaggiornare automaticamente pure gli archivi.

Codice:
 Private bStop As Boolean
    Dim cAp As ClsCreaArcParallelo
    Dim cApNew As ClsCreaArcParallelo

    Private Sub FrmArchiviParalleli_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        LoadComboQuantita()
    End Sub

    Sub LoadComboQuantita()

        Me.ComboBox1.Items.Clear()
        For k As Integer = 1 To 5
            ComboBox1.Items.Add(k)
        Next
        ComboBox1.SelectedIndex = 0

    End Sub

    Sub GestioneEsegui()


        Dim nDaFare As Integer = ComboBox1.SelectedItem


        bStop = False
        cAp = New ClsCreaArcParallelo(cArchivio.FileEstrazioni, Nothing)

        For k As Integer = 1 To nDaFare
            cApNew = New ClsCreaArcParallelo(GetPercorsoFileArchivioParallelo(k), cAp)
            cApNew.CreaArchivioParallelo(CheckBox1.Checked, ProgressBar2)
            ProgressBar1.Value = Percentuale(k, nDaFare)
            Application.DoEvents()
            cAp = cApNew
            If bStop Then Exit For

        Next
        cAp = Nothing
        cApNew = Nothing

    End Sub

    Private Sub ButtonOK_Click(sender As Object, e As EventArgs) Handles ButtonOK.Click
        If ButtonOK.Text = "OK" Then
            ButtonOK.Text = "STOP"
            ButtonAnnulla.Enabled = False
            GroupBox1.Enabled = False
            GestioneEsegui()
            ButtonOK.Text = "OK"
            GroupBox1.Enabled = True
            ButtonAnnulla.Enabled = True
            MessageBox.Show("Fine processo", "Fine", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Me.Close()

        Else
            cApNew.StopProcess()

        End If
    End Sub

    Private Sub ButtonAnnulla_Click(sender As Object, e As EventArgs) Handles ButtonAnnulla.Click
        Me.Close()

    End Sub
 

Edoardo_95

Advanced Member
Ok quindi una cosa del genere

Codice:
    Public Enum eValoriAppConfig
        Archivio
        RangeInizio
        Rangefine
        chkRuoteSel
        SfondoColoreNumeri
        ForeColorNumeri
        SfondoColoreNumEvidenziato
        ForeColorNumEvidenziato
        ArchivioCorrente
        ArchiviParalleli      <================================
    End Enum

Codice:
Public Class frmCreaArchPar
    Private bStop As Boolean
    Dim cAp As ClsCreaArcParallelo
    Dim cApNew As ClsCreaArcParallelo

    Private Sub FrmArchiviParalleli_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        AggiornaStatoComboBox()
        LoadComboQuantita()
    End Sub
    Sub AggiornaStatoComboBox()
        If ConvertToInt(GetValoreCfg(eValoriAppConfig.ArchiviParalleli)) = 0 Then
            SalvaValoreCfg(eValoriAppConfig.ArchiviParalleli, "0")
        End If
    End Sub
    Sub LoadComboQuantita()

        Me.ComboBox1.Items.Clear()
        For k As Integer = 1 To 5
            ComboBox1.Items.Add(k)
        Next
        ComboBox1.SelectedIndex = GetValoreCfg(eValoriAppConfig.ArchiviParalleli)

    End Sub

    Sub GestioneEsegui()


        Dim nDaFare As Integer = ComboBox1.SelectedItem


        bStop = False
        cAp = New ClsCreaArcParallelo(cArchivio.FileEstrazioni, Nothing)

        For k As Integer = 1 To nDaFare
            cApNew = New ClsCreaArcParallelo(GetPercorsoFileArchivioParallelo(k), cAp)
            cApNew.CreaArchivioParallelo(CheckBox1.Checked, ProgressBar2)
            ProgressBar1.Value = Percentuale(k, nDaFare)
            Application.DoEvents()
            cAp = cApNew
            If bStop Then Exit For

        Next
        cAp = Nothing
        cApNew = Nothing

    End Sub

    Private Sub ButtonOK_Click(sender As Object, e As EventArgs) Handles ButtonOK.Click
        If ButtonOK.Text = "OK" Then
            SalvaValoreCfg(eValoriAppConfig.ArchiviParalleli, ComboBox1.SelectedIndex.ToString)
            ButtonOK.Text = "STOP"
            ButtonAnnulla.Enabled = False
            GroupBox1.Enabled = False
            GestioneEsegui()
            ButtonOK.Text = "OK"
            GroupBox1.Enabled = True
            ButtonAnnulla.Enabled = True
            MessageBox.Show("Fine processo", "Fine", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Me.Close()

        Else
            cApNew.StopProcess()

        End If
    End Sub

    Private Sub ButtonAnnulla_Click(sender As Object, e As EventArgs) Handles ButtonAnnulla.Click
        Me.Close()

    End Sub

End Class
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 23 aprile 2024
    Bari
    47
    22
    34
    20
    50
    Cagliari
    33
    14
    86
    02
    62
    Firenze
    61
    22
    44
    19
    26
    Genova
    21
    12
    57
    82
    55
    Milano
    66
    05
    11
    70
    30
    Napoli
    05
    23
    25
    52
    73
    Palermo
    23
    44
    49
    71
    65
    Roma
    82
    37
    59
    34
    71
    Torino
    26
    42
    66
    15
    58
    Venezia
    57
    06
    68
    54
    84
    Nazionale
    21
    79
    49
    03
    01
    Estrazione Simbolotto
    Genova
    24
    02
    19
    03
    27
Alto