Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
PROGRESBAR
Information sur la source
Description
Ce petit bout de code permet la création et la gestion d'un ProgresBar vertical ou horizontal à n'importe quel endroit d'un Form. Le traitement terminé, ce ProgresBar peut-être supprimer du Form afin d'éviter un encombrement inutile
Source
- Le code du Form pour générer et gérer la Progres Bar
-
- * ************************************************************************************************
- * *"ProgresBar" est le nom de la routine de création de la barre de progression *
- * * Param1 = Nom du formulaire (objet) *
- * * Param2 = position ligne (en pixel) affichage Barre *
- * * Param3 = position colonne (en pixel) affichage Barre *
- * * Param4 = hauteur (en pixel) affichage Barre (13 par défaut) *
- * * Param5 = longueur (en pixel) affichage Barre (370 par défaut) *
- * * Param6 = nom de la Barre de Progression ("ProgresBar" par défaut) *
- * * Param7 = Repres. de la barre 0 > pointillés | 1 > continu (0 par défaut) *
- * * Param8 = Présentation Horizonatale (H) (par défaut) ou verticale (V) *
- *************************************************************************************************
- *
- * ************************ pour une Barre Horizontale
- ThisForm.Height = 369 && Agrandi le formulaire OBLIGATOIRE
- && pour mettre la BP au pied de ton form
- Do generate IN ProgresBar WITH ThisForm,336,120,,350,"ProgresBar",1,"H" && Création de la PB
-
- * ************************ pour une Barre Verticale
- *ThisForm.Width = 680
- *Do generate IN ProgresBar WITH ThisForm,48,650,240,13,"ProgresBar",1,"V" && Création de la PB
-
- * **************** ICI la table que tu souhaites visualiser*****************
- Select maTable
- Go TOP
- * ***********************************************************************
-
- * *************************************************************************
- * * "InitProgresBar" est le nom de la routine de fonctionnement *
- * * Param1 = Nom de l'Ojet ProgresBar *
- * * Param2 = 1 pour la première entrée, sinon chaine vide *
- * * Param3 = valeur maximale de la barre *
- * * Param4 = position d'avancement pour afficher la progression *
- * * Param5 = Temporisation *
- * * Param6 = Nom de l'ojet formulaire *
- * *************************************************************************
- *
- nNBEnreg = 0
- && Initialise la ProgresBar
- Do initiate IN ProgresBar WITH ThisForm.ProgresBar,"1",RECCOUNT(),1,1,ThisForm
- * *********************** Boucle modifiable pour ta PB ****************
- Do While ! EOF()
- nNBEnreg = nNBEnreg + 1
- && Active la ProgresBar avec les Nlles valeurs
- Do initiate IN ProgresBar WITH ThisForm.ProgresBar,"",RECCOUNT(), nNBEnreg ,1,ThisForm
- Skip
- EndDo
-
- * ************************ Code non obligatoire
- *MessageBox(" Boucle ProgresBar terminée ",0+32+0," Fin de boucle")
- ThisForm.Height = 320 && Remettre le form à l'état initial
- *ThisForm.Width = 620 && Remettre le form à l'état initial
-
- Do generate IN ProgresBar WITH ThisForm,,,,,"ProgresBar", && Supprime la ProgresBar
-
-
-
- **************************************************************************************************
- -( ProgresBar.prg )-
-
-
- * *********************************************************************************
- * * ProgresBar Version 2.0 (10 mars 2005) *
- * * Routine de gestion d'une barre de prgression *
- * * Description des deux routines "generate" et "initiate" : *
- * ********************************************************************************** * * generate = génère la ProgresBar Horizontale ou Verticale *
- * * et un cadre autour *
- * * le 'TextBox' affichant le nombre d'enregistrements traités *
- * * le 'TextBox' affichant le pourcentage de progression *
- * * Supprime en finalité les Objets créés *
- * * *
- * * initiate = affiche le contenu de la ProgresBar et gére *
- * * les deux 'TextBox' d'informations *
- * *********************************************************************************
-
- FUNCTION generate
- * *****************************************************************
- * * Création d'un Objet Barre de progression *
- * *****************************************************************
- * * (*)oForm = Nom du formulaire (objet) *
- * * (*)oX = ligne (en pixel) affichage Barre *
- * * (*)oY = colonne (en pixel) affichage Barre *
- * * oHaut = hauteur (en pixel) affichage Barre *
- * * oLong = longueur (en pixel) affichage Barre *
- * * oNom = nom de la Barre de Controle *
- * * oRepres = 0 > pointillés | 1 > continu *
- * * oHVpos = o = (H)orizontale / 1 = (V)erticale *
- * *---------------------------------------------------------------*
- * * (*) Eléments obligatoires *
- * ******************************************************************
- *
- PARAMETERS oForm, oX, oY, oHaut, oLong, oNom, oRepres, oHVpos
-
- * **************************************************************
- * * Contrôle des paramètres de création et initialisation *
- * * des valeurs par défaut éventuellement *
- * **************************************************************
- oHVpos = Iif(EMPTY(oHVpos),0,Iif(oHVpos="H",0,1)) && Orientation Horizontale par défaut
- oNom = Iif(EMPTY(oNom),"BarreControle",oNom) && Nom par défaut
- oHaut = Iif(EMPTY(oHaut),Iif(oHVpos=0,13,240),oHaut) && Hauteur de l'ojet par défaut ( si H = 13 si V = 240)
- oLong = Iif(EMPTY(oLong),Iif(oHVpos=0,240,13),oLong) && Longueur par défaut (si H = 240 si V = 13)
- oRepres = Iif(EMPTY(oRepres),0,oRepres) && Présentation en pointillé par défaut
-
- * **************************************************************
- * * Supprime l"objet ProgresBar et son environnement *
- * **************************************************************
- If EMPTY(oX)
- oForm.RemoveObject(oNom)
- oForm.RemoveObject("CadreP")
- oForm.RemoveObject("nBCComptage")
- oForm.RemoveObject("nBCPourcent")
- Return
- EndIf
-
- * **************************************************************
- * * Création de la ProgresBar et de son environnement *
- * **************************************************************
- oForm.AddObject(oNom,"Thermometre","MSComctlLib.Progctrl.2")
- oForm.AddObject("CadreP","Cadre")
- oForm.AddObject("nBCComptage","txtBCC")
- oForm.AddObject("nBCPourcent","txtBCP")
-
- oProgres = oForm.&oNom
- WITH oProgres
- .Orientation = oHVpos
- .Top = oX
- .Left = oY
- .Height = oHaut
- .Width = oLong
- .Scrolling = oRepres
- .Visible = .T.
- .BorderStyle = 1
- EndWITH
-
- WITH oForm.CadreP
- .SpecialEffect = 0
- .Top = oX-4
- .Left = oY-4
- .Height = oHaut+8
- .Width = oLong+8
- .BackColor = RGB(250,255,255)
- .Visible = .T.
- EndWITH
-
- WITH oForm.nBCComptage
- .Width = 100
- .Height = 19
- .Left = Iif(oHVpos=0 , oY , oY-(.Width/2))
- .Top = oX - .Height
- .Alignment = Iif(oHVpos=0, 0, 2)
- .BorderStyle = 0
- .BackStyle = 0
- .FontBold = .T.
- .FontItalic = .T.
- .FontSize = 8
- .ForeColor = RGB(128,64,64)
- .SpecialEffect = 1
- .Visible = .T.
- EndWITH
-
- WITH oForm.nBCPourcent
- .Width = 50
- .Height = 23
- .Left = Iif(oHVpos=0 , oY+((oLong/2)-(.Width/2)) , oY- (.Width / 2))
- .Top = Iif(oHVpos=0 , oX - .Height, (oHaut/2)+(oX-oLong) )
- .Alignment = Iif(oHVpos=0, 2, 0)
- .BorderStyle = 0
- .BackStyle = 0
- .FontBold = .T.
- .FontSize = 8
- .ForeColor = RGB(0,0,255)
- .SpecialEffect = 1
- .InputMask = "999 %"
- .Visible = .T.
- EndWITH
-
- Define CLASS Thermometre AS OLEControl
- EndDefine
- Define CLASS Cadre AS Container
- EndDefine
- Define CLASS txtBCC AS TextBox
- EndDefine
- Define CLASS txtBCP AS TextBox
- EndDefine
-
- * *************\\\\\\\\\\\\\\\\\\\\\\\\*************
- FUNCTION initiate
- * *************************************************************************
- * * Module de gestion d'une barre de progression *
- * *************************************************************************
- * * oBProg = nom de l'objet Barre de progression *
- * * cAppel = 1 pour la première entrée, sinon chaine vide *
- * * nValMax = valeur maximale de la barre *
- * * nCount = position d'avancement pour afficher la progression *
- * * nBoucle = Valeur permettant le ralentissement de la progression *
- * * oForm = Nom de l'ojet formulaire *
- * *************************************************************************
- *
- PARAMETERS oBProg, cAppel, nValMax, nCount, nBoucle, oForm
-
- If cAppel = "1"
- oBProg.Max = nValMax && Init Valeur maximale de la barre
- Return
- EndIf
-
- For iSituation = 1 to nBoucle && Boucle de temporisation
- EndFor && Pour une progression trop rapide
-
- oBProg.Value = nCount && Fait progresser la barre
- oForm.nBCComptage.Value = nCount && Affiche la valeur transmise (RECCOUNT() ou autre)
- oForm.nBCPourcent.Value = INT(( nCount /nValMax)*100) && Affiche le % de progression
- oForm.nBCPourcent.Refresh
Le code du Form pour générer et gérer la Progres Bar
* ************************************************************************************************
* *"ProgresBar" est le nom de la routine de création de la barre de progression *
* * Param1 = Nom du formulaire (objet) *
* * Param2 = position ligne (en pixel) affichage Barre *
* * Param3 = position colonne (en pixel) affichage Barre *
* * Param4 = hauteur (en pixel) affichage Barre (13 par défaut) *
* * Param5 = longueur (en pixel) affichage Barre (370 par défaut) *
* * Param6 = nom de la Barre de Progression ("ProgresBar" par défaut) *
* * Param7 = Repres. de la barre 0 > pointillés | 1 > continu (0 par défaut) *
* * Param8 = Présentation Horizonatale (H) (par défaut) ou verticale (V) *
*************************************************************************************************
*
* ************************ pour une Barre Horizontale
ThisForm.Height = 369 && Agrandi le formulaire OBLIGATOIRE
&& pour mettre la BP au pied de ton form
Do generate IN ProgresBar WITH ThisForm,336,120,,350,"ProgresBar",1,"H" && Création de la PB
* ************************ pour une Barre Verticale
*ThisForm.Width = 680
*Do generate IN ProgresBar WITH ThisForm,48,650,240,13,"ProgresBar",1,"V" && Création de la PB
* **************** ICI la table que tu souhaites visualiser*****************
Select maTable
Go TOP
* ***********************************************************************
* *************************************************************************
* * "InitProgresBar" est le nom de la routine de fonctionnement *
* * Param1 = Nom de l'Ojet ProgresBar *
* * Param2 = 1 pour la première entrée, sinon chaine vide *
* * Param3 = valeur maximale de la barre *
* * Param4 = position d'avancement pour afficher la progression *
* * Param5 = Temporisation *
* * Param6 = Nom de l'ojet formulaire *
* *************************************************************************
*
nNBEnreg = 0
&& Initialise la ProgresBar
Do initiate IN ProgresBar WITH ThisForm.ProgresBar,"1",RECCOUNT(),1,1,ThisForm
* *********************** Boucle modifiable pour ta PB ****************
Do While ! EOF()
nNBEnreg = nNBEnreg + 1
&& Active la ProgresBar avec les Nlles valeurs
Do initiate IN ProgresBar WITH ThisForm.ProgresBar,"",RECCOUNT(), nNBEnreg ,1,ThisForm
Skip
EndDo
* ************************ Code non obligatoire
*MessageBox(" Boucle ProgresBar terminée ",0+32+0," Fin de boucle")
ThisForm.Height = 320 && Remettre le form à l'état initial
*ThisForm.Width = 620 && Remettre le form à l'état initial
Do generate IN ProgresBar WITH ThisForm,,,,,"ProgresBar", && Supprime la ProgresBar
**************************************************************************************************
-( ProgresBar.prg )-
* *********************************************************************************
* * ProgresBar Version 2.0 (10 mars 2005) *
* * Routine de gestion d'une barre de prgression *
* * Description des deux routines "generate" et "initiate" : *
* ********************************************************************************** * * generate = génère la ProgresBar Horizontale ou Verticale *
* * et un cadre autour *
* * le 'TextBox' affichant le nombre d'enregistrements traités *
* * le 'TextBox' affichant le pourcentage de progression *
* * Supprime en finalité les Objets créés *
* * *
* * initiate = affiche le contenu de la ProgresBar et gére *
* * les deux 'TextBox' d'informations *
* *********************************************************************************
FUNCTION generate
* *****************************************************************
* * Création d'un Objet Barre de progression *
* *****************************************************************
* * (*)oForm = Nom du formulaire (objet) *
* * (*)oX = ligne (en pixel) affichage Barre *
* * (*)oY = colonne (en pixel) affichage Barre *
* * oHaut = hauteur (en pixel) affichage Barre *
* * oLong = longueur (en pixel) affichage Barre *
* * oNom = nom de la Barre de Controle *
* * oRepres = 0 > pointillés | 1 > continu *
* * oHVpos = o = (H)orizontale / 1 = (V)erticale *
* *---------------------------------------------------------------*
* * (*) Eléments obligatoires *
* ******************************************************************
*
PARAMETERS oForm, oX, oY, oHaut, oLong, oNom, oRepres, oHVpos
* **************************************************************
* * Contrôle des paramètres de création et initialisation *
* * des valeurs par défaut éventuellement *
* **************************************************************
oHVpos = Iif(EMPTY(oHVpos),0,Iif(oHVpos="H",0,1)) && Orientation Horizontale par défaut
oNom = Iif(EMPTY(oNom),"BarreControle",oNom) && Nom par défaut
oHaut = Iif(EMPTY(oHaut),Iif(oHVpos=0,13,240),oHaut) && Hauteur de l'ojet par défaut ( si H = 13 si V = 240)
oLong = Iif(EMPTY(oLong),Iif(oHVpos=0,240,13),oLong) && Longueur par défaut (si H = 240 si V = 13)
oRepres = Iif(EMPTY(oRepres),0,oRepres) && Présentation en pointillé par défaut
* **************************************************************
* * Supprime l"objet ProgresBar et son environnement *
* **************************************************************
If EMPTY(oX)
oForm.RemoveObject(oNom)
oForm.RemoveObject("CadreP")
oForm.RemoveObject("nBCComptage")
oForm.RemoveObject("nBCPourcent")
Return
EndIf
* **************************************************************
* * Création de la ProgresBar et de son environnement *
* **************************************************************
oForm.AddObject(oNom,"Thermometre","MSComctlLib.Progctrl.2")
oForm.AddObject("CadreP","Cadre")
oForm.AddObject("nBCComptage","txtBCC")
oForm.AddObject("nBCPourcent","txtBCP")
oProgres = oForm.&oNom
WITH oProgres
.Orientation = oHVpos
.Top = oX
.Left = oY
.Height = oHaut
.Width = oLong
.Scrolling = oRepres
.Visible = .T.
.BorderStyle = 1
EndWITH
WITH oForm.CadreP
.SpecialEffect = 0
.Top = oX-4
.Left = oY-4
.Height = oHaut+8
.Width = oLong+8
.BackColor = RGB(250,255,255)
.Visible = .T.
EndWITH
WITH oForm.nBCComptage
.Width = 100
.Height = 19
.Left = Iif(oHVpos=0 , oY , oY-(.Width/2))
.Top = oX - .Height
.Alignment = Iif(oHVpos=0, 0, 2)
.BorderStyle = 0
.BackStyle = 0
.FontBold = .T.
.FontItalic = .T.
.FontSize = 8
.ForeColor = RGB(128,64,64)
.SpecialEffect = 1
.Visible = .T.
EndWITH
WITH oForm.nBCPourcent
.Width = 50
.Height = 23
.Left = Iif(oHVpos=0 , oY+((oLong/2)-(.Width/2)) , oY- (.Width / 2))
.Top = Iif(oHVpos=0 , oX - .Height, (oHaut/2)+(oX-oLong) )
.Alignment = Iif(oHVpos=0, 2, 0)
.BorderStyle = 0
.BackStyle = 0
.FontBold = .T.
.FontSize = 8
.ForeColor = RGB(0,0,255)
.SpecialEffect = 1
.InputMask = "999 %"
.Visible = .T.
EndWITH
Define CLASS Thermometre AS OLEControl
EndDefine
Define CLASS Cadre AS Container
EndDefine
Define CLASS txtBCC AS TextBox
EndDefine
Define CLASS txtBCP AS TextBox
EndDefine
* *************\\\\\\\\\\\\\\\\\\\\\\\\*************
FUNCTION initiate
* *************************************************************************
* * Module de gestion d'une barre de progression *
* *************************************************************************
* * oBProg = nom de l'objet Barre de progression *
* * cAppel = 1 pour la première entrée, sinon chaine vide *
* * nValMax = valeur maximale de la barre *
* * nCount = position d'avancement pour afficher la progression *
* * nBoucle = Valeur permettant le ralentissement de la progression *
* * oForm = Nom de l'ojet formulaire *
* *************************************************************************
*
PARAMETERS oBProg, cAppel, nValMax, nCount, nBoucle, oForm
If cAppel = "1"
oBProg.Max = nValMax && Init Valeur maximale de la barre
Return
EndIf
For iSituation = 1 to nBoucle && Boucle de temporisation
EndFor && Pour une progression trop rapide
oBProg.Value = nCount && Fait progresser la barre
oForm.nBCComptage.Value = nCount && Affiche la valeur transmise (RECCOUNT() ou autre)
oForm.nBCPourcent.Value = INT(( nCount /nValMax)*100) && Affiche le % de progression
oForm.nBCPourcent.Refresh
Sources de la même categorie
Commentaires
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | | | 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |
|
Téléchargements
Logiciels à télécharger sur le même thème :
|