begin process at 2012 02 17 08:57:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Control

 > TIMER OCX A INTERVAL LONG (MULTI-USAGE : CLASSIQUE, BENCHMARK, HORLOGE)

TIMER OCX A INTERVAL LONG (MULTI-USAGE : CLASSIQUE, BENCHMARK, HORLOGE)


 Information sur la source

Note :
9,2 / 10 - par 5 personnes
9,20 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Control Classé sous :timer, ocx, benchmark, intervalle, afck Niveau :Initié Date de création :19/07/2005 Date de mise à jour :26/11/2005 13:28:47 Vu / téléchargé :8 387 / 1 006

Auteur : PCPT

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Un petit Timer sans prétention, pour remplacer celui de VB.
3 options : (expliquées sur la Form > How To use)

Classical -> Comme celui de Vb, plus précis, avec un intervalle "Long" et non pas "Integer".
Bench -> calcul entre son démarrage et sa fin, en Currency millisecondes, par QueryPerformance ou GetTicket à défaut.
Watch -> envoie un évènement à chaque seconde, minute, heure.

Invisible au RunTime, et on ne peut pas changer son type pendant qu'il est en Enabled=True.
pour tester l'erreur retournée : AfTimer1.TypeTimer=Watch
s'il est sur True et différent de Watch, l'erreur 231 se produit.


 Conclusion

Pour avoir les performances réelles, compilez ce contrôle (OCX).
Si vous avez des suggestions, améliorations, questions, commentaires (+note), je suis là ;)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

19 juillet 2005 15:28:35 :
Ajout de l'OCX compilé
27 juillet 2005 16:20:37 :
Maj Zip (Interval pour Ocx + source)
13 août 2005 17:22:15 :
projet + ocx renommés suppression d'un "debug.print" égaré correction des références (remarque de mythic_kruger)
26 novembre 2005 13:28:47 :
mots-clés

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) [VB2008] OBSERVER L'ACTIVITÉ INPUT (CLAVIER SOURIS) DE L'UTI...
Source avec Zip Source avec une capture PUBLIC SHARED SANS MODULE - VARIABLE SINGLETON : IDENTIFICAT...
Source avec Zip Source avec une capture RÉCUPÉRATION DES IMAGES SYSTÈME DEPUIS LEUR EXTENSION OU LEU...
Source avec Zip Source avec une capture FILE FOLDER LOCKER - BLOQUER (ET DÉBLOQUER) L'ACCÈS À CERTAI...
Source avec Zip Source avec une capture FOLDER HELPER - DOSSIERS SPECIAUX, MANIPULATION DE DOSSIERS,...

 Sources de la même categorie

Source avec Zip COMMUNICATION MODBUS MASTER par sergelapointe
Source avec Zip Source avec une capture DÉPLACEMENT AVEC FLÈCHES DANS UN PAVÉ DE TEXTBOX 9X9 DYNAMIQ... par EhJoe
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLSTARS EN RÉPONSE À JAKNIGHT007 par bigboss9
Source avec Zip Source avec une capture Source .NET (Dotnet) CALENDRIER ANNUEL NORME ISO par Prog1001
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLE STARS par jaknight007

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) JEU DE MÉMOIRE CLASSIQUE par raffika
Source avec Zip Source avec une capture CONVERTISSEUR HEXAVIGÉSIMAL par shaeks
Source avec Zip Source avec une capture JEU DU SERPENT/TRON par dada9109
Source avec Zip Source avec une capture ALERTER L'UTILISATEUR SANS PASSER PAR L'HORRIBLE MSGBOX - ER... par PCPT
Source avec Zip Source avec une capture SKIN B2 (OU PRESQUE), MODIFIEZ L'ESTHÉTIQUE DE VOS APPLICATI... par PCPT

Commentaires et avis

Commentaire de PCPT le 19/07/2005 16:02:50 administrateur CS

mise à jour du Zip : OCX compilé fourni.
(le Projet_Sample est tout de même lié au projet non-compilé)
je crois que ce Timer peut servir à plus d'un...
j'attend vos retours ;)

PCPT

Commentaire de Renfield le 19/07/2005 16:39:22 administrateur CS

Interessant...

Attention cependant a la technique employée : VB est sensible aux procédures de rappel (CallBack) et crash si on presse par exemple le bouton STOP de l'IDE

Attention dans "Let Interval" si on réaffecte la même valeur, on se retrouve avec mInterval = 1

Pour l'erreur, tu peux utiliser Err.Raise 231 , "TypeTimer ne peut pas être changé l...."

ca a été bossé, et reflechi, c'est clair !

Commentaire de PCPT le 19/07/2005 18:04:05 administrateur CS

Salut,
pour Le crash dans l'IDE, j'en suis conscient. il faut l'utiliser en OCX. il ne plante pas l'IDE lorsqu'il est compilé (je viens de vérifier).

pour "Let Interval", en effet, j'ai placé le "End If" un peu trop haut. je modifie çà, et je mettrais à jour après d'autres commentaires...
pour ceux qui veulent le changer de suite, il suffit de déplacer le "End If" juste avant le "End Property"

Pour "Err.Raise", je ne connais pas. on peut l'utiliser sans avoir à déclarer un "Event Error" perso? c'est juste pour savoir, j'aime bien ma manière de procéder tout de même :-p , avec légende + paramètres supplémentaires éventuels (même si c'est inutile pour ce cas de figure)

merci ....
(tu peux aussi noter si tu veux -_-)
PCPT

Commentaire de Afyn le 19/07/2005 22:52:40

C bien.
Normalement précis à 10 ms.

Effectivement les callBack sont chatouilleux.
Faudrait essayer avec d'autres API que Set Timer.

(Par exemeple un TimerQueueTimer serait le bien venu !)

Bonne continuation

Afyn
Navedac

Commentaire de PCPT le 20/07/2005 01:04:27 administrateur CS

Afyn -> la seule source qui parle apparemment de cette API, c'est là tienne ;)
mis à par MSDN où je viens de trouver des infos.
seulement, en comparaison avec ta source, pour les performances, en passant par SetTimer, mon PC est entre 18% et 24% d'utilisation (avec le reste qui tourne) à intervalle de 10ms. avec ta TimerQueue..., entre 48% et 73%. et 100% en 1ms.

tu peux me donner plus d'infos? dans le sens...., m'expliquer pourquoi je devrais modifier mon timer pour qu'il décolle les dissipateurs thermiques :-p

les 10ms, donc l'équart minimal réel pour le CallBack, ok, mais ce n'est qu'un timer. celui de VB est à 18ms. çà me paraît pas mal déjà. après, pour avoir des performances plus précises entre 2 évènements, il suffit de basculer en mode BenchMark. vous pouvez par exemple mesurer :

Dim I as Integer
Af.Enabled = True
I = 3
Af.Enabled = False

-> retoune 0,0207ms

merci pour ce(s) commentaire(s), j'en prend bonne note en attendant les suivants ;)
PCPT

Commentaire de Afyn le 20/07/2005 10:14:46

Quelques Infos :
Plusieurs Types de Timers :
Timer VB : intervalle min 18 ms !
Timer API SetTimer : intervalle min 10 ms (low priority)

Pour avoir un intervalle à la milliseconde :
Multimedia Timer : (winMM.dll) Win 95 -> Win XP
- Il faut que le PC soit équipé d'un Timer assez précis
(mais ça semble etre le cas de tous les PC !)
- Il faut régler la précision de l'horloge interne au max
- Le timer crée un Thread supplémentaire
-> un trés bon exemple Le RSTimer (environ 1 % du proc)
   composant free mais sans les sources

Ensuite viens le waitable timer soit disant plus léger
en ressource, qui s'éxécute dans le même thread, peut
être utile pour débugger. précis 1 ms également en ajustant
l'horloge système avec les API WinMM.

Sur XP, le top serait le TimerQueueTimer, moins de ressources
processeur. Mais là ... entre la théorie et la pratique ...
Si tu veux je te passe un exemple ... de code qui marche
dans l'IDE, mais qui plante en compilé quand on essaye
d'accéder à des variables Objets (commme un shape par ex)
Impossible de trouver un exemple fonctionnel. J'aimerai
bien que quelqu'un m'explique pourquoi ça plante ?
(peut etre un appel a la vm qui n'est pas safe)

Voilà, mes connaissance ne vont guère plus loin ...

En fait, il faudrait également connaitre le système
de message win, savoir quels messages sont traités
avant les autres pour mettre aux point un timer,
car ça ne sert à rien de savoir envoyer des
messages de façon précises, s'il sont traités
en dernier ...

Il y a surement des trucs à explorer du coté des
interruptions, ou de la façon dont sont programmé
les drivers.

Bon courage

Afyn
Navedac

Commentaire de PCPT le 27/07/2005 16:25:43 administrateur CS

Afyn -> ok, merci pour ces précisions. je ne pense pas faire évoluer ce timer, pour le moment du moins, mais j'ai feuilleté un peu la MSDN en rapport à tes informations.
peut-être m'y plongerais-je + un jour...

All -> zip mis à jour, avec la correction de l'intervalle (le "End If" trop haut).
et j'en ai profité pour le passer à 10 par défaut et 10 en cas d'erreur, en laissant la possibilité de le descendre jusqu'à 1 comme le Timer VB (même si il n'y en a pas d'utilité)

PCPT

Commentaire de mythic_kruger le 30/07/2005 03:49:15

Intérêt du programme: 10/10
    Utile, vu le contrôle Timer de VB.

Code: 8/10
    Pourquoi pas une classe plutôt qu'un OCX?

Distribution: 6/10
    Editer le vbp pour les références, hum.

Pédagogie: 10/10
    Bien les explications sur l'interface.

Interface: 10/10
   Bon design!

Conclusion: un bon contrôle ActiveX.

Commentaire de PCPT le 30/07/2005 10:35:52 administrateur CS

merci ;)



code -> parce que je suis dans les OCX depuis peu, c'est pour me faire la main.
        parce qu'en classe, çà existe déjà.
        pour vraiment remplacer le TimerVB, donc dans les outils ;)
        (mais tu es le 2e à m'en faire la remarque)

distribution -> l'ocx compilé est fourni dans un fichier Release, je ne vois pas le problème de référencer un projet recompilable, à un projet exemple....
ou alors j'ai mal compris.... (?)


çà fait plaisir en tout cas
PCPT

Commentaire de NeverDie le 04/10/2006 20:35:20

comme vous aller l'air à bien connaître les timer, j'ai une question pour vous. J'ai fais un petit programme console qui va vérifier l'utilisation du CPU et de la mémoire sur un Serveur (Windows server 2003). Ensuite, celui-ci enregistre les données dans la BD et enregistre également une erreur dans la BD si le % d'utilisation préalablement déterminé est dépassé. J'utilise un timer (VB) pour vérifier l'utilisation CPU/MEM, l'intervalle est prédéfini par un utilisateur. Tout fonctionne bien. Cependant, après un certain temps aléatoire, le timer arrête sans raison apparente. Aucune erreur enregistré dans Event LOG, aucune exeption "catcher" dans le programme non plus. Auriez-vous une idée de la cause de ce problème et qu'est-ce que je pourrais faire pour remédier à cette situation ?

merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Une fonction comme Timer avec un intervalle + grand ? [ par trabice ] Bonjour,tout est dans le titre.Je ne sais pas du tout si ca existe.MerciFabrice Urgent Timer et intervalle [ par moi4975 ] salut tous le monde,Voila j'ai mis un intervalle de 226000 millisecondes et mon timer revoit une erreur !!! Comment faut-il faire pour pouvoir decompt *** Timer avec intervalle de 1min 05 sec *** [ par browser64 ] Bonjour à tous, Sur le code "voir ci-dessous" je souhaiterai que mon "MSGBOX" s'execute toute les 1 min 05 secondes. Quel est le code manquant po Equivalent timer rapide (intervalle de 10ms) [ par mstarsup5 ] Bonjour, Pour un de mes programmes, j'utilise une boucle prenant assez de temps (10 secondes), dans lequel je dois utiliser des sleep 10 (les timer ne Effectuer un traitement à intervalle de 24 heures [ par syca ] Bonjour,Je cherche depuis un moment le moyen de faire l'équivalent du timer, mais sur une période calculée en heure et non en ms. Je sais mettre le pr [AIDE] Charger un OCX dans le code [ par nico_fip1 ] Bonjour,Est ce qu'un objet ocx peut être utilisé comme une colasse, et chargé directement dans le code ? (Sans le placer physiquement d Timer et filelistbox dans une page HTML sous VB6 [ par EREF ] Salut à Tous !!! Je débute en HTML et mon Pb est le suivant: Dans une page HTML (sous VB6) je veux faire un explorateur de fichier à deux fenetres de Probleme de timer [ par demonn ] bonjour a tous ,voilà j'ai un timer qui arrete et qui relance un processus toutes les 10 minutesseulement entre le moment ou il arrete et celui o Timer sur VB6 [ par gilles74 ] Bonjour,est ce que quelqu'un connait une solution simple pour créer un temporisateur (Precision 0.1s)?Merci. copier , enregistrer ... [ par diablamanshadow ] bonjour, alors voila mon probleme , je fais un programme (logique lol) et j'ai des ocx et voila la cata j'ai pas envie de me casser la tete a expliker


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,028 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales