Oppure

Loading
19/12/09 12:24
ProgrammatoreVBC++
Salve ragazzi tengo il componente XPControl e voglio mettere la progressbar sempre di XPControl , che codice metto x farla funzionarla ?
aaa
19/12/09 21:30
ProgrammatoreVBC++
allora sapete aiutarmi ? ??
aaa
20/12/09 11:07
GrG
XPControl è un ocx sai come integrarlo nel progetto?
aaa
20/12/09 11:35
Louis
Ciao, abbiamo capito che sei in difficoltà, però in particolare non si capisce se non sei in grado di registrare l'OCX di cui trattasi, o perché non sai implementare il codice necessario per la PB.
Allora fermo restando quanto detto e dando per scontato che hai già registrato l'ocx e disegnato sulla Form la ProgressBar, poni sulla Frm una Lbl con Nome lblInfo e 3 Txt con Nome: TxtDcopy, TxtCopiati e TxtPerc; poi nella Cartella del Progetto crea due Cartelle con Nome: DATI e DATI2; infine nel Modulo della Frm copia quanto segue:
Option Explicit
    Dim FSO As FileSystemObject
'----------------------------------------
Private Sub Form_Load()
    
    ProgBarXP1.min = 0
    ProgBarXP1.max = 100
    Set FSO = New FileSystemObject

End Sub
'----------------------------------------
Private Sub Command1_Click()
    
    Dim vrnSF As Variant
    Dim vrnF1 As Variant
    Dim dSorg As Folder
    Dim btFolder As Long
    Dim fileLenght As Long
    Dim bytesScritti As Long

' Progetto>Riferimenti...>Microsoft Scripting Runtime:
' Legge percorso e Nome della cartella principale:
    Set dSorg = FSO.GetFolder(App.Path & "\DATI")
' Legge capacità in bytes della cartella principale:
    btFolder = dSorg.Size
    TxtDcopy.Text = Format(btFolder, "#,##0")
    
        If btFolder > 0 Then
        ' Istanzia la subFolder:
            Set vrnSF = dSorg.SubFolders
            
            For Each vrnF1 In vrnSF
        ' Acquisisce lunghezza della SubFolder:
                fileLenght = vrnF1.Size
        ' Quando destinazione è una directory di sola lettura, se si tenta
        ' di copiare un file di sola lettura esistente in tale directory e
        ' sovrascrittura è False verrà generato un errore:
                FSO.CopyFolder vrnF1, App.Path & "\DATI2\", True 'False
        ' Evidenzia la SubFolder copiata:
                lblInfo.Caption = vrnF1
                lblInfo.Refresh
                ProgBarXP1.value = Percent(0, btFolder, bytesScritti + fileLenght)
                bytesScritti = bytesScritti + fileLenght
                TxtCopiati.Text = Format(bytesScritti, "#,##0")
                TxtPerc.Text = Format((bytesScritti / btFolder) * 100, "#,##0.00")
                'ProgBarXP1.Refresh
            Next vrnF1
        End If
End Sub
'----------------------------------------
Function Percent(min As Long, max As Long, value As Long) As Long
    
        '100 : x = btFolder : bytesScritti
        Percent = value * 100 \ max

End Function


Nella Cartella DATI si presuppone che esistano SubCartelle contenenti dei files da copiare (SubCartelle e files) nella Cartella DATI2.
Il codice l'ho testato e funziona.
Ciao.
aaa
21/12/09 15:49
ProgrammatoreVBC++
Postato originariamente da Louis:

Ciao, abbiamo capito che sei in difficoltà, però in particolare non si capisce se non sei in grado di registrare l'OCX di cui trattasi, o perché non sai implementare il codice necessario per la PB.
Allora fermo restando quanto detto e dando per scontato che hai già registrato l'ocx e disegnato sulla Form la ProgressBar, poni sulla Frm una Lbl con Nome lblInfo e 3 Txt con Nome: TxtDcopy, TxtCopiati e TxtPerc; poi nella Cartella del Progetto crea due Cartelle con Nome: DATI e DATI2; infine nel Modulo della Frm copia quanto segue:
Option Explicit
    Dim FSO As FileSystemObject
'----------------------------------------
Private Sub Form_Load()
    
    ProgBarXP1.min = 0
    ProgBarXP1.max = 100
    Set FSO = New FileSystemObject

End Sub
'----------------------------------------
Private Sub Command1_Click()
    
    Dim vrnSF As Variant
    Dim vrnF1 As Variant
    Dim dSorg As Folder
    Dim btFolder As Long
    Dim fileLenght As Long
    Dim bytesScritti As Long

' Progetto>Riferimenti...>Microsoft Scripting Runtime:
' Legge percorso e Nome della cartella principale:
    Set dSorg = FSO.GetFolder(App.Path & "\DATI")
' Legge capacità in bytes della cartella principale:
    btFolder = dSorg.Size
    TxtDcopy.Text = Format(btFolder, "#,##0")
    
        If btFolder > 0 Then
        ' Istanzia la subFolder:
            Set vrnSF = dSorg.SubFolders
            
            For Each vrnF1 In vrnSF
        ' Acquisisce lunghezza della SubFolder:
                fileLenght = vrnF1.Size
        ' Quando destinazione è una directory di sola lettura, se si tenta
        ' di copiare un file di sola lettura esistente in tale directory e
        ' sovrascrittura è False verrà generato un errore:
                FSO.CopyFolder vrnF1, App.Path & "\DATI2\", True 'False
        ' Evidenzia la SubFolder copiata:
                lblInfo.Caption = vrnF1
                lblInfo.Refresh
                ProgBarXP1.value = Percent(0, btFolder, bytesScritti + fileLenght)
                bytesScritti = bytesScritti + fileLenght
                TxtCopiati.Text = Format(bytesScritti, "#,##0")
                TxtPerc.Text = Format((bytesScritti / btFolder) * 100, "#,##0.00")
                'ProgBarXP1.Refresh
            Next vrnF1
        End If
End Sub
'----------------------------------------
Function Percent(min As Long, max As Long, value As Long) As Long
    
        '100 : x = btFolder : bytesScritti
        Percent = value * 100 \ max

End Function


Nella Cartella DATI si presuppone che esistano SubCartelle contenenti dei files da copiare (SubCartelle e files) nella Cartella DATI2.
Il codice l'ho testato e funziona.
Ciao.



Scusami , grazie .. mi potresti dare il progetto ?
aaa
22/12/09 8:46
Louis
Non capisco ... il progetto é tutto lì; devi posizionare l'ocx sulla Form disegnando la PB, poi posizionare i controlli che ti ho indicato ed infine attivare il riferimento nel seguente modo: Progetto>Riferimenti...>Microsoft Scripting Runtime
Non c'é altro.
Bhe se incontri difficoltà facci sapere.
In particolare il codice e la procedura per ProgBarXP é uguale a quella richiesta per il controllo standard di VB6, salvo alcune proprietà in più o in meno.
Per attivare l'esempio postato crea nella cartella ove risiede il progetto due Cartelle: DATI e DATI2; poi nella nuova cartella DATI inserisci delle nuove cartelle contenenti dei files, cartelle e files che saranno copiati nella cartella DATI2, operazione che attiverà la pb.
Compresa la logica del progetto ti sarà facile modificare l'esempio per le tue necessità.
:k:
aaa