Novità

MINICORSO VB

  • Creatore Discussione Creatore Discussione LuigiB
  • Data di inizio Data di inizio
1) PASSO 1--------------

Andare su Progetto
Componenti
e mettere la spunta al componente

Microsoft Hierarchical FlexGrid Control 6.0(SP6)


Bene ora portare il componente sul Form
andare sulla finstra proprieta e cambiare il nome da
MSHFlexGrid1 in FlexEstra


2)PASSO 2---------------------------------------------

nel Form F_BrowserEstrazioni
incollare il seguente codice


Sub settaGriglia1()

Dim cel
With FlexEstra
.Rows = 12
.Cols = 6
.Width = 4455
.Height = 3975
For cel = 1 To 6
.Redraw = False
' imposta la larghezza delle colonne della griglia
.ColWidth(0) = 1200
.ColWidth(cel) = 450
Next cel
.AllowBigSelection = False
.FillStyle = flexFillSingle
.Redraw = True
.Redraw = True
.Font.Name = "Verdana"
.Font.Size = "10"
.Font.Bold = True
.FontFixed.Name = "Verdana"
.FontFixed.Size = "10"
.FontFixed.Bold = True

End With


With FlexEstra
.TextMatrix(0, 0) = "Ruota"
.TextMatrix(0, 1) = " I°"
.TextMatrix(0, 2) = "II°"
.TextMatrix(0, 3) = "III°"
.TextMatrix(0, 4) = "IV°"
.TextMatrix(0, 5) = " V°"
.TextMatrix(1, 0) = "Bari"
.TextMatrix(2, 0) = "Cagliari"
.TextMatrix(3, 0) = "Firenze"
.TextMatrix(4, 0) = "Genova"
.TextMatrix(5, 0) = "Milano"
.TextMatrix(6, 0) = "Napoli"
.TextMatrix(7, 0) = "Palermo"
.TextMatrix(8, 0) = "Roma"
.TextMatrix(9, 0) = "Torino"
.TextMatrix(10, 0) = "Venezia"
.TextMatrix(11, 0) = "Nazionale"
End With

End Sub



3) PASSO 3------------------------


richiamare la SUB dall'evento Load del Form
semplicemente cosi'

settaGriglia1




4) PASSO 4----------------------------

Cancellare la Listview1

andare in Sub AlimentaLista()


Su questa parte di codice ........................

Me.labData = LeggiDataEstr(strctE)
Me.LabNumero = strctE.DataEstr.nNumEstr

'Con il costrutto For...Next faremo un ciclo sulle ruote
For r = 1 To 11
'aggiungiamo un elemento alla lista
Set itm = ListView1.ListItems.Add

'il primo campo deve contenere il nome della ruota
itm.Text = aNomiRuote(r)

'a questo punto dobbiamo alimentare i campi con i 5 estratti
For k = 1 To 5
itm.SubItems(k) = strctE.aRuote(r).aNum(k)
FlexEstra.TextMatrix(r, k) = strctE.aRuote(r).aNum(k)
Next

Next

...................................................

Trasformarlo in


Me.labData = LeggiDataEstr(strctE)
Me.LabNumero = strctE.DataEstr.nNumEstr

'Con il costrutto For...Next faremo un ciclo sulle ruote
For r = 1 To 11
'aggiungiamo un elemento alla griglia

'a questo punto dobbiamo alimentare i campi con i 5 estratti
For k = 1 To 5
FlexEstra.TextMatrix(r, k) = strctE.aRuote(r).aNum(k)
Next

Next




Spero di essere stato chiaro



esselotto

Le grandezze fisiche che caratterizzano un moto oscillatorio
sono l'ampiezza e la frequenza.
°°°esselotto°°°
 
quote:

Private Sub Form_Load()

'All'apertura della finestra alimenteremo i valori min e max della scrollbar

Me.HScroll1.Min = 1
Me.HScroll1.Max = GetQuantitaEstrInArchivio


'' aggiungo per visualizzare ultima estrazione in archivio
Me.HScroll1.Value = GetQuantitaEstrInArchivio ' Porta l'archivio in ultima posizione


End Sub
Ciao esselotto
io ho risolto facendo:

Me.HScroll1.Min = 1
Me.HScroll1.Max = GetQuantitaEstrInArchivio
Me.HScroll1.value = Me.Hscroll1.Max
 
Un saluto a tutti,
ringrazio esselotto per le tue indicazioni e consigli, sò che hai buone conoscenze con il VB6,
in quanto ho seguito altri tuoi interventi con Luigi sul VB6.
Proverò sicuramente quanto da te indicato, nel frattempo ho risolto il mio problema con il seguente modulo:

Sub VisUltEstrazione()

Dim itm As MSComctlLib.ListItem
Dim strctE As STRUCT_ESTRAZIONE
Dim R As Integer
Dim E As Integer
Dim k As Integer

ListView1.ListItems.Clear

Me.LabNumero = GetQuantitaEstrInArchivio
Call LeggiEstrazione(LabNumero, strctE)
Me.labData = LeggiDataEstr(strctE)
For R = 1 To 11
Set itm = ListView1.ListItems.Add
itm.Text = aNomiRuote(R)

For E = 1 To 5
itm.SubItems(E) = strctE.aRuote(R).aNum(E)

Next

Next

End Sub

Lo scopo della mia richiesta era quello di creare un form dove era presente l'ultima estrazione e poi tramite delle
caselle, sleshare le varie opzioni tipo vertibili, simmetrici e così via, da evidenziare, non sò ancora come fare, ma ci proverò.
Io sono proprio all'inizio per cui sicuramente non realizzo la soluzione migliore, però fa piacere ricevere indicazioni da chi ha
maggiori conoscenze e non ha pregiudizi ad aiutare chi vuole imparare.
Ti ringrazio e mi farebbe piacere se anche tu alle eventuali richieste puoi intervenire aiutandoci per quanto possibile.
Grazie



C'è vero progresso solo quando i vantaggi di una nuova tecnologia diventano per tutti.
Francesco
 
quote:Originally posted by Atlantis57

Ciao Paciola,
ho provato a sostituire la macro,
a me da un errore,e a te?
a proposito qual'è la basedati giusta,
nei vari file sono una diversa dall'altra

Ciao , Atlantis57 sto avendo il problema che avevi tu , mi spieghi come hai fatto a risolvere perche non ci riesco grazie




saluti Aldo
 
quote:Originally posted by Aldo.G

quote:Originally posted by Atlantis57

Ciao Paciola,
ho provato a sostituire la macro,
a me da un errore,e a te?
a proposito qual'è la basedati giusta,
nei vari file sono una diversa dall'altra


Ciao , Atlantis57 sto avendo il problema che avevi tu , mi spieghi come hai fatto a risolvere perche non ci riesco grazie




saluti Aldo

Ciao Aldo
avevo fatto un errore nella sub SalvaEstrazione.
Se la cerchi troverai scritto così:

Sub SalvaEstrazione(strctE () as STRUCT_ESTRAZIONE ecc....)

Devi togliere le due parentesi dopo la parola strctE e cosi dovrebbe andare.

Ciao
Davide
 
Implementato l'aggiornamento manuale delle estrazioni.
Ehh poca fantasia vero....
Assomiglia "leggermente" a quella di spaziometria!!! :D

Va bèèè ho preso qualche spunto, Luigi mi perdonerà, credo!! [:p]



Ciao Davide
 
Ciao a tutti
avrei una domanda per Luigi.
Se volessi provare ad implementare un form che mi visualizzi tutto l'archivio, qual'è il controllo ideale da utilizzare?
Sempre una Listview ?
Te lo chiedo perchè in Spaziometria ho visto che quando dal menù Base Dati lanci Estrazioni lotto, si apre una finestra che contiene tutto l'archivio, ma non riesco a capire che controllo sia, in quanto, a differenza di quello che hai usato nel corso per la form Browser Estrazioni, quella di Spaziometria ha la colonna della data colorata di grigio come l'intestazione delle varie ruote.
Non so se mi sono spiegato bene, ma spero che tu abbia capito cosa intenso.
Grazie
Davide
 
Un saluto a tutti,
ho un problema che non riesco a capire da cosa possa dipendere.
Quando apro il file sia con vb6, mi da il seguente errore:

Open clsAppSetting.ReadValoreChiave(PercorsoBaseDati) For Binary As f

Lanciando l'exe mi scrive:

Errore Run-Time impossibile trovare percorso.

Io ho spostato la cartella con i vari componenti in altra posizione,
però non mi consente neanche di cambiare tramite il mod. configurazione
di lanciarlo per cambiare eventualmente le posizioni dei file.

Qualcuno può aiutarmi? per favore.
Grazie

C'è vero progresso solo quando i vantaggi di una nuova tecnologia diventano per tutti.
Francesco
 
Ciao PFCA , tanto per vedere sostituisci la riga dell'open con
msgbox clsAppSetting.ReadValoreChiave(PercorsoBaseDati)

cosi vedrai secondo lui dove vuole andare a leggere il file ...
è gia un inizio per capire il problema
 
Ciao Luigi,
ho provato a sostituire la riga e mi da tutto il percorso dell'applicativo prima che spostassi il tutto in una nuova cartella.
Ho provato anche a ricostruire il vecchio percorso però continua a darmi l'errore.
Hai qualche altro consiglio da darmi o devo riscrivere il tutto?
Grazie


C'è vero progresso solo quando i vantaggi di una nuova tecnologia diventano per tutti.
Francesco
 
bhe posso dire che aprendo un file in modalità binary
se questo non esiste dovrebbe essere creato automaticamente
senza nessun errore , quindi prende corpo l'ipotesi che il percorso
che vuole usare si riferisce a qualche sottocartella che non esiste
percio da errore.
Ora mi pare di capire che dandoti l'errore non ti consente poi
di modificare il percorso tramite la finestra settings.
bene
nella routine che esegue la funzione open inserisci
la gestione dell'errore con le istruzioni on error
in questo modo anche se capita l'errore non sara bloccante
e potrai agire cambiando il percorso dalla finestra.
 
Ok grazie provo, poi ti faccio sapere, devo riavviare il computer
in quanto ho un dualboot.
Ti faccio sapere tra 5 minuti, se sei ancora in linea

C'è vero progresso solo quando i vantaggi di una nuova tecnologia diventano per tutti.
Francesco
 
Perfetto mi ha fatto modificare l'indirizzo ed è tutto ok.
Grazie Luigi

C'è vero progresso solo quando i vantaggi di una nuova tecnologia diventano per tutti.
Francesco
 
quote:Originally posted by paciola

quote:

Private Sub Form_Load()

'All'apertura della finestra alimenteremo i valori min e max della scrollbar

Me.HScroll1.Min = 1
Me.HScroll1.Max = GetQuantitaEstrInArchivio


'' aggiungo per visualizzare ultima estrazione in archivio
Me.HScroll1.Value = GetQuantitaEstrInArchivio ' Porta l'archivio in ultima posizione


End Sub
Ciao esselotto
io ho risolto facendo:

Me.HScroll1.Min = 1
Me.HScroll1.Max = GetQuantitaEstrInArchivio
Me.HScroll1.value = Me.Hscroll1.Max



benissimo paciola, ottimo, complimenti anche a te.
Io personalmente uso queste due variabili per tutti i miei progetti

minEstratti=1
maxEstratti=GetQuantitaEstrInArchivio

Me.HScroll1.Min = minEstratti
Me.HScroll1.Max = maxEstratti
Me.HScroll1.value = maxEstratti

Ognuno di noi ha un proprio metodo per rendere facile e leggibile
il lavoro per un futuro aggiornamento del programma.


scusatemi se rispondo in ritardo ma quando vado per aprire la
pagina Area download di LottoCed, impiega dai 40 a 70 secondi( quando va bene).
per aprire la finestra nuovo messaggio impiega lo stesso tempo.

E spesso e volentieri lascio perdere il tutto.

esselotto
 
Grazie Esselotto.
Ora sono impegnato nel popolare la MSHFlexgrid dove vorrei far vedere tutto l'archivio.
Ma è un vero casino, non capisco come possa riuscirci. Go settato la FlexGrid con tutte le colonne giuste (infatti se la apro vuota l'intestazione della colonna della data e delle ruote si legge bene.
Ma come popolare la griglia non ho proprio la più pallida idea di come fare.
Ho provato a mettere giù del codice per vedere di caricare almeno la colonna della data (e poi proseguivo con il resto delle estrazioni), ma non mi torna.
Proverei a postare il codice per vedere se qualcuno ci butta un occhio:

Sub AlimentaGriglia()

ReDim aEstr(0) As STRUCT_ESTRAZIONE

Dim QMax As Long

Dim nPrimaRiga As Long
Dim nPrimaColonna As Long

Dim k As Integer, r As Integer


QMax = GetQuantitaEstrInArchivio
Call ApriBaseDatiInMemoria(1, QMax, aEstr)

If UBound(aEstr) > 0 Then
'Me.FlexArchivio.Clear

nPrimaRiga = 1
nPrimaColonna = 0


For k = 1 To UBound(aEstr)

Me.FlexArchivio.TextMatrix(nPrimaRiga, nPrimaColonna) = aEstr(k).DataEstr.nNumEstr & "-" & TranslateDataEstToHuman(aEstr(k).DataEstr)

nPrimaRiga = nPrimaRiga + 1

Next k



End If
End Sub


Grazie Davide
 
Ciao , perche non ti torna ?
Cosi da uno sguardo veloce mi sembra che la logica e il codice
siano corretti.
Devi tenere presente che la grid come tutti gli altri controlli
dispone di proprieta e metodi , tutti ben documentati nell'help di vb.
Principalmente con la proprietà rows definisci il numero di righe
che deve contenere con la proprieta cols la qauntita di colonne
poi con il metodo textMatrix imposti i valori per le varie celle
esattamente come nel codice che hai postato.
Invece il consiglio che do io è un altro , usare si la flexgrid ma non caricare l'intero archivio nella griglia poiche cio rallenta di molto
l'esecuzione dellaz procedura AlimentaGriglia.
L'idea è realizzare un qualcosa di leggermente piu complesso e cioe
disporre una griglia con un numero di righe uguali tali da coprire l'altezza del controllo , impostare le proprieta scrollbar a scroll solo orizzontale e inserire a destra della criglia una scrollbar verticale , sara lei ad orchestrare la procedura di caricamento , l'utente muove la scrollbar e la procedura alimentaGriglia non deve
far altro che caricare le estrazioni a partire da vscrollbar.value
fino a vscrollbar.value + RigheGriglia , in questo modo la procedura
si velocizza proprio perche carichiamo solo chesso le 25 30 estrazioni visibili non tutte le 8000 dell'archivio , è anche vero che l'altro metodo è piu semplice e che sebbene sia piu lungo va lanciato una volta sola poi le estrazioni ci sono tutte.
Non so come in tutte le cose si possono prendere diverse strade...
a voi la scelta.

Ciao !
 
Grazie Luigi.
Ti spiego perchè non mi torna.
Il codice che ho postato è una prova per vedere se almeno la colonna del numero e data estrazioni mi veniva compilata.
Invece se lancio la sub mi viene segnalato un errore di runtime

"Indice non compreso nell'intervallo".

ma non riesco a capire il perchè.
Anche a ne in linea di massima sembrava logico come codice, ma a lui non piace.
Hai qualche suggerimento please?

Grazie
Davide


P.S.
Non appena ho capito meglio il controllo provo a seguire il suggerimento che hai dato tu!
 
certo , usa gli strumenti di debug ed individua la linea dell'errore
dopo di che sforzati di capirlo.
Ricordiamo che puoi usare i breackpoint per impostare una linea
di codice dalal quale iniziare a debuggare step by step con il tasto F8
In questo modo certamente isoli l'errore poi cerchi di capire come mai capita e risolvi.
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 21 gennaio 2025
    Bari
    78
    09
    70
    03
    23
    Cagliari
    32
    88
    30
    13
    45
    Firenze
    87
    23
    15
    39
    86
    Genova
    71
    48
    67
    59
    23
    Milano
    58
    50
    80
    85
    29
    Napoli
    90
    81
    79
    82
    62
    Palermo
    70
    33
    90
    05
    10
    Roma
    15
    71
    55
    85
    76
    Torino
    89
    09
    18
    33
    69
    Venezia
    44
    80
    82
    73
    58
    Nazionale
    80
    25
    13
    63
    17
    Estrazione Simbolotto
    Bari
    39
    36
    34
    14
    31
Indietro
Alto