OVH Cloud OVH Cloud

latence au chargement

6 réponses
Avatar
a.bouyac
Bjour,

J'ai un petit souci avec mes progs en VB, il doit y avoir une astuce
toute simple, mais je ne la trouve pas.
Quand je charge un form sur le quel je dois, au chargement, afficher
de l'information d'une base de données ou d'un fichier (peu importe),
j'appelle la fonction de chargement des données depuis la fin du
form_load. Seulement, les données ne s'affichent pas (il s'agit de
mettre en gras certaines journées sur un calendrier). Par contre, si
j'exécute le programme en mode débug, ca va donc moins vite et sans
rien changer au programme, les données sont chargées (les jours voulus
sont en gras).
Alors évidemment, je me dis qu'en mettant un timer qui retarde l'appel
de la fonction de chargement des données ça devrait marcher, mais il
doit y avoir plus simple et moins tiré par les cheveux non ? (si
j'appelle la fonction dans form_initialize ça marche pas mieux)
(je ne sais pas si j'ai été clair... en gros mon explication c'est que
le programme essaye de mettre en gras des jours d'un calendrier pas
encore entièrement chargé).
Merci par avance pour votre aide.

Aurélien B.

6 réponses

Avatar
Christian Hugoud - Xtrem7
Place ton appel de fonction dans le activate.

Christian

"Tetard" a écrit dans le message de
news:
Bjour,

J'ai un petit souci avec mes progs en VB, il doit y avoir une astuce
toute simple, mais je ne la trouve pas.
Quand je charge un form sur le quel je dois, au chargement, afficher
de l'information d'une base de données ou d'un fichier (peu importe),
j'appelle la fonction de chargement des données depuis la fin du
form_load. Seulement, les données ne s'affichent pas (il s'agit de
mettre en gras certaines journées sur un calendrier). Par contre, si
j'exécute le programme en mode débug, ca va donc moins vite et sans
rien changer au programme, les données sont chargées (les jours voulus
sont en gras).
Alors évidemment, je me dis qu'en mettant un timer qui retarde l'appel
de la fonction de chargement des données ça devrait marcher, mais il
doit y avoir plus simple et moins tiré par les cheveux non ? (si
j'appelle la fonction dans form_initialize ça marche pas mieux)
(je ne sais pas si j'ai été clair... en gros mon explication c'est que
le programme essaye de mettre en gras des jours d'un calendrier pas
encore entièrement chargé).
Merci par avance pour votre aide.

Aurélien B.


Avatar
François Picalausa
Bonjour/soir,

Un Me.Show (éventuellement suivit de doevents) avant de faire tes appels,
dans le form_load, pourrait peut-être arranger la chose?

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Tetard" a écrit dans le message de
news:
Bjour,

J'ai un petit souci avec mes progs en VB, il doit y avoir une astuce
toute simple, mais je ne la trouve pas.
Quand je charge un form sur le quel je dois, au chargement, afficher
de l'information d'une base de données ou d'un fichier (peu importe),
j'appelle la fonction de chargement des données depuis la fin du
form_load. Seulement, les données ne s'affichent pas (il s'agit de
mettre en gras certaines journées sur un calendrier). Par contre, si
j'exécute le programme en mode débug, ca va donc moins vite et sans
rien changer au programme, les données sont chargées (les jours voulus
sont en gras).
Alors évidemment, je me dis qu'en mettant un timer qui retarde l'appel
de la fonction de chargement des données ça devrait marcher, mais il
doit y avoir plus simple et moins tiré par les cheveux non ? (si
j'appelle la fonction dans form_initialize ça marche pas mieux)
(je ne sais pas si j'ai été clair... en gros mon explication c'est que
le programme essaye de mettre en gras des jours d'un calendrier pas
encore entièrement chargé).
Merci par avance pour votre aide.

Aurélien B.


Avatar
Christophe QUEVAL
Bonjour,

Voici un petit exemple :

dans Form_Activate

Static FenetreAffichee as boolean
If FenetreAffichee = False then
xxxxx votre code xxxxx
FenetreAffichee= True
Else
xxxxx code éventuel xxxx
End If

Ce code permet l'exécution de certaine fonction au démarrage de la fenêtre,
mais évite que celui-ci ne se réexécute à chaque fois que la fenêtre prend
le focus (utile en cas d'appli MDI).

Christophe

"Tetard" a écrit dans le message de
news:
Bjour,

J'ai un petit souci avec mes progs en VB, il doit y avoir une astuce
toute simple, mais je ne la trouve pas.
Quand je charge un form sur le quel je dois, au chargement, afficher
de l'information d'une base de données ou d'un fichier (peu importe),
j'appelle la fonction de chargement des données depuis la fin du
form_load. Seulement, les données ne s'affichent pas (il s'agit de
mettre en gras certaines journées sur un calendrier). Par contre, si
j'exécute le programme en mode débug, ca va donc moins vite et sans
rien changer au programme, les données sont chargées (les jours voulus
sont en gras).
Alors évidemment, je me dis qu'en mettant un timer qui retarde l'appel
de la fonction de chargement des données ça devrait marcher, mais il
doit y avoir plus simple et moins tiré par les cheveux non ? (si
j'appelle la fonction dans form_initialize ça marche pas mieux)
(je ne sais pas si j'ai été clair... en gros mon explication c'est que
le programme essaye de mettre en gras des jours d'un calendrier pas
encore entièrement chargé).
Merci par avance pour votre aide.

Aurélien B.


Avatar
a.bouyac
Bonjour,

Merci bien pour vos réponses, en mettant dans form_activate mes appels
de fonctions en les faisant précéder de doEvents ça marche. Je ne sais
pas exactement ce que fait ce DoEvents mais ça marche ;)
Encore une petite question : lorsque je ferme ma fenetre, quand je
travaille dessus dans VB (pas l'exécutable avec lequel je ne travaille
pas encore), le compilateur de VB reste en route, enfin tout ne se
finit pas (le bouton "play" reste grisé et le carré "stop" est à
presser pour retravailler le code. J'ai dans mon code recordset et
connexion oledb, que je ferme dans le form_terminate, d'ou cela peut
etre provenir d'autre ? Y'a t'il moyen de forcer la fermeture totale
de l'appli ?

merci d'avance pour de nouvelles infos.
Aurélien
Avatar
François Picalausa
Bonjour/soir,

DoEvents permet à VB d'exécuter les événements restant avant de continuer
l'exécution.

Pour terminer proprement ton appli, je te conseille la fiche suivante:
http://faq.vb.free.fr/index.php?question

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Tetard" a écrit dans le message de
news:
Bonjour,

Merci bien pour vos réponses, en mettant dans form_activate mes appels
de fonctions en les faisant précéder de doEvents ça marche. Je ne sais
pas exactement ce que fait ce DoEvents mais ça marche ;)
Encore une petite question : lorsque je ferme ma fenetre, quand je
travaille dessus dans VB (pas l'exécutable avec lequel je ne travaille
pas encore), le compilateur de VB reste en route, enfin tout ne se
finit pas (le bouton "play" reste grisé et le carré "stop" est à
presser pour retravailler le code. J'ai dans mon code recordset et
connexion oledb, que je ferme dans le form_terminate, d'ou cela peut
etre provenir d'autre ? Y'a t'il moyen de forcer la fermeture totale
de l'appli ?

merci d'avance pour de nouvelles infos.
Aurélien


Avatar
a.bouyac
Bonjour ,

Merci pour votre aide, mais tout en bricolant à droite à gauche mon
programme, celui-ci se ferme maintenant correctement. J'ai tjs mis
des unload pour fermer mes fenetres mais merci pour l'astuce (de se
méfier du hide).
a+
Aurélien B.

"Christophe QUEVAL" wrote in message news:<#...
Si l'appli ne se ferme pas complètement, c'est certainement qu'il reste une
feuille chargée en mémoire (cachée par Hide par exemple, et oublié d'être
déchargée ensuite peut-être ?).

"Tetard" a écrit dans le message de
news:
> Bonjour,
>
> Merci bien pour vos réponses, en mettant dans form_activate mes appels
> de fonctions en les faisant précéder de doEvents ça marche. Je ne sais
> pas exactement ce que fait ce DoEvents mais ça marche ;)
> Encore une petite question : lorsque je ferme ma fenetre, quand je
> travaille dessus dans VB (pas l'exécutable avec lequel je ne travaille
> pas encore), le compilateur de VB reste en route, enfin tout ne se
> finit pas (le bouton "play" reste grisé et le carré "stop" est à
> presser pour retravailler le code. J'ai dans mon code recordset et
> connexion oledb, que je ferme dans le form_terminate, d'ou cela peut
> etre provenir d'autre ? Y'a t'il moyen de forcer la fermeture totale
> de l'appli ?
>
> merci d'avance pour de nouvelles infos.
> Aurélien