Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
14 sept. 2005 à 09:28
Whismeril
Messages postés19025Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention19 avril 2024
-
24 mars 2017 à 17:18
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_bbjodel
Messages postés2Date d'inscriptionvendredi 1 octobre 2004StatutMembreDernière intervention28 mai 2013 13 févr. 2009 à 23:28
Cet exemple de jauge est parfait, mais pourriez vous me donner un exemple pour un altimetre a echelle verticale ?
C'est a dire l'altitude defile verticalement, j'ai cherché sur le web, rien trouvé...
Cordialement Fred
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 15 sept. 2005 à 22:57
Le contrôle apparait de manière sympa (originale, en tous cas)
seule chose concernant ce point, elle ne tient pas compte de la barre des taches.
En effet, j'ai pris l'habitude de placer ma barre des taches sur la gauche, et ta fenetre, est donc a moitié placée sous la barre de taches.
on regrette que le Tooltip renvoies une série de chiffres non formatés, et donc difficile à lire
un indicateur du poucentage de mémoire libre serait d'un bon ton également
Bien que ta source indique "la RAM disponible", je n'ai pas vu de mention indiquant
la RAM totale de ma machine
évite de quitter tes programmes avec la commande End.
Elle ne permet pas toujours à VB de tout décharger proprement. favorive un Unload de tes Forms...
Quel interet de charger dynamiquement tes Timers, plutot que d'ajouter les contrôles sur la Form ?
mythic_kruger
Messages postés241Date d'inscriptionjeudi 8 janvier 2004StatutMembreDernière intervention10 novembre 2005 15 sept. 2005 à 22:18
Dissertation sur les remarques des commentaires commentés, lol.
Très juste, s'ils sont inutiles il faut les supprimer!
Mais mieux vaut les avoir et ne pas s'en servir, que d'en avoir
besoin et ne pas les avoir sous la main. Ils sont retirés par le
compilateur de toute façon et ne dérangent pas pour une utilisation nomale de l'appli.
En revanche le contrôle n'est pas un OCX réutilisable, mais un ctl inclus dans un projet ce qui permet de le modifier pour chaque projet, au cas par cas. Souple.
C'est un choix -celui des performances- que d'avoir un contrôle sans code exécuté inutilement d'ou les commentaires, plutôt que d'avoir 1 gros contrôle flexible mais très lourd avec plein d'options de partout qui servent peu. Aussi la commentatisation montre (ou)vertement aux débutants les trois étapes pour ajouter une propriété au contrôle.
L'image de fond, comme je l'ai précisé, est retravaillée ce n'est pas juste un dégradé.
Pour le dégradé je fais avec la méthode line() en trois ligne de code sans API.
Si on peut obtenir strictement le même résultat avec un ProgressBar de COMCTL.OCX, chapeau
parce que je n'ai pas réussi à obtenir plus qu'une barre horizontale, bleue et pas zolie. Avec 200 lignes de subclassing ça doit être faisable quand même.
Sinon vous avez aimé le design, l'apparition zen, la fermeture rapide par simple clic, l'absence de minbutton et maxbutton, le chargement dynmamique d'un contrôle timer?
Sale?? Faire un ctrl-alt-suppr pour comparer avec l'outil fourni par micro$oft, Onglet performances. lol.
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 14 sept. 2005 à 15:47
Personnellement, j'aurais inclus une fonction permettant de créer son propre dégradé et non devoir utiliser le tiens...
Vois l'API GdiGradientFillRect qui ne demande pas énormément de code...
Et que sont toutes ces lignes en commentaire ? Si pas utiles, les supprimer non ?
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 14 sept. 2005 à 13:25
Pareil !
Un peu trop de code commenté pour rien. Ca fait un peu sale.
Un autre petit point :
Public Property Let Max(n As Long)
lMax = n
taux = UserControl.ScaleHeight / lMax
placer_barre lVAL
End Property
Si n vaut 0 ( après tout, pourquoi pas ...) ?
Tu avais géré çà très bien dans UserControl_Resize.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 14 sept. 2005 à 09:28
le titre de ton application est trompeuse :
il ne s'agit pas d'un controle illustrant une jauge, indiquant la RAM...
mais d'une jauge, sorte de ProgressBar.
C'est la form qui contient le code de la RAM....
Il vaudrait mieux placer le code de la RAM dans le controle, afin de coller au titre, et d'apporter un interet à ton controle : une ProgressBar standard ferait tout aussi bien l'affaire.
Deuxième point, ne laisser pas tout ce code en commentaire dans ton UserControl.
24 mars 2017 à 17:18
24 mars 2017 à 12:29
13 févr. 2009 à 23:28
C'est a dire l'altitude defile verticalement, j'ai cherché sur le web, rien trouvé...
Cordialement Fred
15 sept. 2005 à 22:57
seule chose concernant ce point, elle ne tient pas compte de la barre des taches.
En effet, j'ai pris l'habitude de placer ma barre des taches sur la gauche, et ta fenetre, est donc a moitié placée sous la barre de taches.
on regrette que le Tooltip renvoies une série de chiffres non formatés, et donc difficile à lire
un indicateur du poucentage de mémoire libre serait d'un bon ton également
Bien que ta source indique "la RAM disponible", je n'ai pas vu de mention indiquant
la RAM totale de ma machine
évite de quitter tes programmes avec la commande End.
Elle ne permet pas toujours à VB de tout décharger proprement. favorive un Unload de tes Forms...
Quel interet de charger dynamiquement tes Timers, plutot que d'ajouter les contrôles sur la Form ?
15 sept. 2005 à 22:18
Très juste, s'ils sont inutiles il faut les supprimer!
Mais mieux vaut les avoir et ne pas s'en servir, que d'en avoir
besoin et ne pas les avoir sous la main. Ils sont retirés par le
compilateur de toute façon et ne dérangent pas pour une utilisation nomale de l'appli.
En revanche le contrôle n'est pas un OCX réutilisable, mais un ctl inclus dans un projet ce qui permet de le modifier pour chaque projet, au cas par cas. Souple.
C'est un choix -celui des performances- que d'avoir un contrôle sans code exécuté inutilement d'ou les commentaires, plutôt que d'avoir 1 gros contrôle flexible mais très lourd avec plein d'options de partout qui servent peu. Aussi la commentatisation montre (ou)vertement aux débutants les trois étapes pour ajouter une propriété au contrôle.
L'image de fond, comme je l'ai précisé, est retravaillée ce n'est pas juste un dégradé.
Pour le dégradé je fais avec la méthode line() en trois ligne de code sans API.
Si on peut obtenir strictement le même résultat avec un ProgressBar de COMCTL.OCX, chapeau
parce que je n'ai pas réussi à obtenir plus qu'une barre horizontale, bleue et pas zolie. Avec 200 lignes de subclassing ça doit être faisable quand même.
Sinon vous avez aimé le design, l'apparition zen, la fermeture rapide par simple clic, l'absence de minbutton et maxbutton, le chargement dynmamique d'un contrôle timer?
Sale?? Faire un ctrl-alt-suppr pour comparer avec l'outil fourni par micro$oft, Onglet performances. lol.
14 sept. 2005 à 15:47
Vois l'API GdiGradientFillRect qui ne demande pas énormément de code...
Et que sont toutes ces lignes en commentaire ? Si pas utiles, les supprimer non ?
14 sept. 2005 à 13:25
Un peu trop de code commenté pour rien. Ca fait un peu sale.
Un autre petit point :
Public Property Let Max(n As Long)
lMax = n
taux = UserControl.ScaleHeight / lMax
placer_barre lVAL
End Property
Si n vaut 0 ( après tout, pourquoi pas ...) ?
Tu avais géré çà très bien dans UserControl_Resize.
14 sept. 2005 à 09:28
il ne s'agit pas d'un controle illustrant une jauge, indiquant la RAM...
mais d'une jauge, sorte de ProgressBar.
C'est la form qui contient le code de la RAM....
Il vaudrait mieux placer le code de la RAM dans le controle, afin de coller au titre, et d'apporter un interet à ton controle : une ProgressBar standard ferait tout aussi bien l'affaire.
Deuxième point, ne laisser pas tout ce code en commentaire dans ton UserControl.