|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Barra di progressione
Cia a tutti;
Vorrei chiedervi il seguente aiuto: Non sono riuscita mai ad utilizzare eggeggiamente in VB le barre di progressione che indicano l'avanzamento di una certa operazione. Esempio: Se io vorrei fare un cliclo FOR, del tipo: For i=1 to 100000 Label1 = i next vorrei ad esempio che in una barra di progressione mi compaia l'avanzamento dell'operazione. Non sono mai riuscita a farla funzionare abbinata ad un determinato ciclo di lavoro. Potete aiutarmi??? Grazie. carmen |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
|
Potresti fare così:
ProgressBar1.Min = 1 ProgressBar1.Max = 100000 For i = 1 To 100000 ProgressBar1.Value = i Label1.Caption = i Next In sostanza devi impostare le proprietà Min e Max, dopo di che basta impostare la proprietà Value ad ogni iterazione. ciao |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Grazie del consiglio.
Però l'esempio che io avevo fatto del ciclo for sicuramente e una dei più semplici. Se invece di avere un ciclo for ad esempio, dovrei fare parecchie elaborazioni di dati, e vorrei fin quando non si finisce visualizzare, come dovrei in questo caso impostare la progressbar??? Ciao. Carmen |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Devi sapere a priori o calcolare a run-time quanto durano i calcoli (in cicli o in dimensione o in qualsiasi misura) altrimenti non puoi usare il progress bar...
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
In pratica mi stai dicendo che dovrei sapre ancor prima di lanciare l'operazione quanto dovrebbe durare?
Si, ma come faccio. Se ad esempio ti faccio un esempio un pò banale, se dovrei fare delle SQL in varie tabelle, di grossi dimensioni, e vorrei usare una progressbar per segnare la progressione del processo, come faccio a priore a sapere quanto ci impiegherà. Ciao. Carmen |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
Quote:
![]() Potresti per esempio indicare la progressione delle varie interrogazioni, chesso', devi fare 10 query, indichi lo stato delle varie operazioni da 1 a 10... di piu' non credo che sia fattibile.
__________________
Quale parte di NO non hai capito? | MBP Retina Late 2013 - iPhone 6 64GB - iPad Air 64GB Fiero membro del BOFH club (Bastard Operators From Hell) |
|
![]() |
![]() |
![]() |
#7 | |
Member
Iscritto dal: Jan 2001
Città: PATAVIUM
Messaggi: 280
|
Quote:
e ad ogni regord che elabora gli fai aggiungere 1
__________________
Salva il Pianeta |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
o xegallo... non per contraddirti... ma come fai a "prevedere" il risultato (aka recordcount) di una query prima di farla ?
![]()
__________________
Quale parte di NO non hai capito? | MBP Retina Late 2013 - iPhone 6 64GB - iPad Air 64GB Fiero membro del BOFH club (Bastard Operators From Hell) |
![]() |
![]() |
![]() |
#9 | |
Member
Iscritto dal: Jan 2001
Città: PATAVIUM
Messaggi: 280
|
Quote:
tanto il problema della perdita di tempo si verifica quando recupera i dati nel dabase per caricarli in una lista. L'apertura è prtessochè istantanea
__________________
Salva il Pianeta |
|
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Jan 2001
Città: PATAVIUM
Messaggi: 280
|
Sub Intellist()
'routine che costruisce la struttura di una listview in base alla struttura 'di un recordset Dim a As Long Dim mItem As ListItem Dim Record As Recordset Dim Rec As String ' creazione colonne CreaColonne If Len(Trim(Passaggio.Dato_Passato1)) = 0 Then Passaggio.Dato_Passato1 = "%" End If If Len(Trim(Passaggio.Dato_Passato2)) = 0 Then Passaggio.Dato_Passato2 = "%" End If 'Apertura connessione recordset Set Record = Passaggio.Recordset Rec = Trim(Passaggio.Record) Select Case Rec Case "DE.rsL_AnaProd" DE.L_AnaProd Trim(Passaggio.Dato_Passato1), Trim(Passaggio.Dato_Passato2) Case "DE.rsLS_UtentiPass" DE.LS_UtentiPass Trim(Passaggio.Dato_Passato1) End Select With frmIntelist.LswRicerca 'Crea la lista per colonne .ListItems.Clear With Record 'riempie la lista per colonne Dim b As Long frmIntelist.ProgressBar1.Max = Record.RecordCount frmIntelist.ProgressBar1.Value = 0 Do Until Record.EOF Set mItem = frmIntelist.LswRicerca.ListItems.Add(, , .Fields(0).Value) mItem.ListSubItems.Add , , .Fields(1).Value frmIntelist.ProgressBar1.Value = frmIntelist.ProgressBar1.Value + 1 b = b + 1 .MoveNext Loop .Close End With End With End Sub questa routine tra le altre cose fa anche l'auento di valore di una progressbar
__________________
Salva il Pianeta |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
aspe'... tutto questo e' correttissimo considerando un accesso "isam" alla tabella... a quanto ho capito carmen intendeva chiedere se era possibile visualizzare la progressbar durante i "tempi morti" della select... esempio... lancio una query "select * from elencotelefonicodituttitalia where nome='antonio'", un pelino di tempo il server lo impieghera' per tutto cio'... e in questa fase non e' possibile visualizzare una progressbar...
Perdonami la poca lucidita'... ma ho appena finito di fare un barbecue spettacolare e mi sono un po' arrostito! ![]()
__________________
Quale parte di NO non hai capito? | MBP Retina Late 2013 - iPhone 6 64GB - iPad Air 64GB Fiero membro del BOFH club (Bastard Operators From Hell) |
![]() |
![]() |
![]() |
#12 | |
Member
Iscritto dal: Jan 2001
Città: PATAVIUM
Messaggi: 280
|
Quote:
__________________
Salva il Pianeta |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
e qui mi vedi completamente d'accordo !!
Alla fin fine sarebbe piu' o meno uguale alla progressbar di un IE quando non riceve alcun dato !
__________________
Quale parte di NO non hai capito? | MBP Retina Late 2013 - iPhone 6 64GB - iPad Air 64GB Fiero membro del BOFH club (Bastard Operators From Hell) |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
A quanto ho capito carmen intendeva chiedere se era possibile visualizzare la progressbar durante i "tempi morti" della select... esempio... lancio una query "select * from elencotelefonicodituttitalia where nome='antonio'", un pelino di tempo il server lo impieghera' per tutto cio'... e in questa fase non e' possibile visualizzare una progressbar...
Ciao ragazzi. Il mio problema era proprio una cosa di questo genere. Se ad esempio faccio una sql, quà non esiste il recordcount. Ma protrei ad esempio utilizzare la barra anche in molti altri casi, se non vi è uno standard, ogni volta e proprio un casino. Ricordo un qualcosa di un comando chiamato DoEvent, che sinceramente non sono riuscita ben a capire a cosa serve. |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
Quote:
Per una gestione standard della progress bar.... ahem.... boh ! Se per standard intendi un modo di usarla, ebbene min, max e value sono i tuoi compagni di viaggio ! ![]()
__________________
Quale parte di NO non hai capito? | MBP Retina Late 2013 - iPhone 6 64GB - iPad Air 64GB Fiero membro del BOFH club (Bastard Operators From Hell) |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Credo che saranno dei bruttissimi compagni di viaggio. Possibli "Cacchio" che non vi sia uno standard per questo schifo di barra. Oppure meglio ancora se esiste un qualche componente progressBar che consenta la cosa....
![]() ![]() |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Ciao. Certo sarebbe una soluzione, però non la più elegante in quanto non darebbe la giusta impressione dello scorrere del lavoro.
Carmen ![]() |
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Penzo di averlo già chiesto, però non si trova un ocx progressBar , il quale sia dotato di un suo evento, nel quale inserire il codice che si vuole eseguire, e lui automaticamente fa andare la progresBar....
Ciao. Carmen ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:12.