bonjour tout le monde,
on se retrouve aujourd'hui pour un nouveau tuto : comment ne pas utiliser trop de ressource et donc que notre application soit utilisable sur de faible machines et comment faire pour ne pas qu'elle se fige.(quand je dit ressources je ne parle pas des images, etc mais des performances d'un PC (CPU, RAM, ...))
Au lieu d'utiliser un timer (par exemple) pour modifier une propriété d'un contrôle ou autre on peu utiliser des événements comme Resize (vu dans : https://forumvelersoftware.bbactif.com/t1610-creez-vos-propres-composants-sous-forme-de-dll) au lieu de :
ou
quand on veut afficher l'état de la connexion a Internet on utilise aussi un timer, on peut utiliser a la place les événement d'applications (trouvable dans l'explorateur de solution)
sinon pour plus de fluidité dans notre logiciel on peut utiliser le multi-thread (merci google pour l'écriture) afin d'éviter les applications bloquées pendant quelques secondes (voir : https://www.youtube.com/watch?v=BgS1h4xySO4 quand il envoie le mail, son soft se bloque pendant un moment)
donc allez dans l'éditeur de fonctions de votre form et cliquez sur le petit rectangle :
un formulaire s'ouvre, inscrivez un nom a votre fonction (moi je l'ai appelé "ma_fonction") et cliquez sur OK
une nouvelle fonction est crée
ajoutez dedans vos fonction figeant l'application (comme par exemple un de mes dernier tuto "géolocaliser avec l'ip" qui fait légèrement figer l'application)
donc j'ajoute mon code dedans :
ensuite on va dans l'événement ou ces fonctions doivent êtres exécutes et on ajoute la fonction code VB et on y met ce code :
et vous testez :
plus aucun freeze
bon dev
cordialement
on se retrouve aujourd'hui pour un nouveau tuto : comment ne pas utiliser trop de ressource et donc que notre application soit utilisable sur de faible machines et comment faire pour ne pas qu'elle se fige.(quand je dit ressources je ne parle pas des images, etc mais des performances d'un PC (CPU, RAM, ...))
Au lieu d'utiliser un timer (par exemple) pour modifier une propriété d'un contrôle ou autre on peu utiliser des événements comme Resize (vu dans : https://forumvelersoftware.bbactif.com/t1610-creez-vos-propres-composants-sous-forme-de-dll) au lieu de :
- Code:
nom_du_contrôle.size = Me.size
ou
quand on veut afficher l'état de la connexion a Internet on utilise aussi un timer, on peut utiliser a la place les événement d'applications (trouvable dans l'explorateur de solution)
sinon pour plus de fluidité dans notre logiciel on peut utiliser le multi-thread (merci google pour l'écriture) afin d'éviter les applications bloquées pendant quelques secondes (voir : https://www.youtube.com/watch?v=BgS1h4xySO4 quand il envoie le mail, son soft se bloque pendant un moment)
donc allez dans l'éditeur de fonctions de votre form et cliquez sur le petit rectangle :
un formulaire s'ouvre, inscrivez un nom a votre fonction (moi je l'ai appelé "ma_fonction") et cliquez sur OK
une nouvelle fonction est crée
ajoutez dedans vos fonction figeant l'application (comme par exemple un de mes dernier tuto "géolocaliser avec l'ip" qui fait légèrement figer l'application)
donc j'ajoute mon code dedans :
- Code:
Dim info As New System.Xml.XmlDocument 'création de la variable info
Dim infonode As System.Xml.XmlNodeList 'création de la variable infonode
Dim i As Integer 'création de la variable i
info.Load("http://freegeoip.net/xml/") 'obtention des informations
infonode = info.GetElementsByTagName("Response")
For i = 0 To infonode.Count - 1 'pour chaque info dans infonode
infonode(i).ChildNodes.Item(0).InnerText.Trim()
dim info1 = "Adresse IP : " & infonode(i).ChildNodes.Item(0).InnerText.Trim()
dim info2 = "Pays : " & infonode(i).ChildNodes.Item(2).InnerText.Trim()
dim info3 = "Region : " & infonode(i).ChildNodes.Item(4).InnerText.Trim()
dim info4 = "Ville : " & infonode(i).ChildNodes.Item(5).InnerText.Trim()
dim info5 = "Latitude : " & infonode(i).ChildNodes.Item(7).InnerText.Trim()
dim info6 = "Longitude : " & infonode(i).ChildNodes.Item(8).InnerText.Trim()
Next
msgbox(info1 & info2 & info3 & info4 & info5 & info6)
ensuite on va dans l'événement ou ces fonctions doivent êtres exécutes et on ajoute la fonction code VB et on y met ce code :
- Code:
Dim Thread1 As New System.Threading.Thread(AddressOf nom_de_votre_première_fonction_pour_moi_c_est_ma_fonction)
Thread1.Start() ' Démarrer le nouveau thread.
et vous testez :
plus aucun freeze
bon dev
cordialement