Invité Invité
| Sujet: Calendrier Mer 9 Mai 2012 - 10:33 | |
| Je remet ici un programme en AutoIt pour saisir une date dans une fenêtre comportant un calendrier. Ceci pour me permettre de retrouver par la suite mes programmes. Plusieurs fois j'ai mis des copies en réponse ou des remarques dans d'autres postes, que je ne retrouve pas ensuite. Surtout depuis que j'ai changé d'ordinateur. C'est un petit programme appelé par Panoramic avec EXECUTE ou EXECUTE_WAIT, mais cette dernière instruction, je la déconseille vivement, car elle prend 100% des ressourses machine. Je préfère utiliser avec la dernière versions de Panoramic, qui est:0.9. 23i5 du 13 février 2012. Elle comporte une instruction qui est: - Citation :
- HANDLE_FORM("caption de la forme"), ce qui fait:
EXECUTE ".....exe" ' attente de l'ouverture du programme calendrier: repeat : flag%= HANDLE_FORM("Get date") : wait 10 : until flag%>0 or scancode =27
' attente de la fermeture du programme pour continuer. repeat : flag%= HANDLE_FORM("Get date") : wait 100 : until flag%=0 De cette façon les ressources machines sont peux sollicitées, et ne doivent pas être plus importantes qu'une DLL pour faire la même chose. A noter que la passation des paramètres pour l'ouverture du programme se fait par le presse papier avec le nom de la fenêtre pour que le programme calendrier puisse savoir le handle de Panoramic, suivi de la position x,y du calendrier, et de 0 ou 1 Pour pouvoir fermer le calendrier et continuer, il faut mettre à 0. Pour laisser le calendrier ouvert, mettre 1 Je passe les paramètres d'ouverture du programme de cete façon: - Code:
-
fenetre$=fenetre$ + "|600,400,0" Il est évident qu'on peut mettre le nom de la fenêtre à la place d'une variable, mais les séparateurs doivent être respectésA noter que la fermeture de la fenêtre Panoramic, ferme le calendrier. La date est récupéré par un edit, qui peut-être à hide, ou en dehors de la fenêtre Panoramic, et la date est récupéré par TEXT$(de cet edit) Il est impératif que cet EDIT soit le dernier EDIT dans le sens de la lecture du programme. Si vous avez un doute lorsque vous avez plusieurs EDIT, l'exécution du programme, montrera la date cliquée dans un edit, et vous saurez lequel c'est. Ceci dit, j'avais commis une erreur sur les dates dans la version sur le premier post. Là il y a bien 4 chiffres pour la date.Voir le Fichier : CALENDAR.7zJe remet le programme de teste Panoramic qui est dans le zip: - Code:
-
height 0,200 ' mettre dans le presse papier en exemple:"calendrier|100 ,200" ' caption 0 |left,top"
dim f$ , flag% ,fenetre$ : f$="z:\calender.exe" :' chemin du programme calender
fenetre$="calendrier" : caption 0,fenetre$
' ,0 pour fermer, ou ,1 pour empécher la fermeture du calendrier fenetre$=fenetre$ + "|600,400,0" :' position du calendrier: left 600, top 400 clipboard_string_copy fenetre$ ' edit 2 ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ' edit pour la réception de la date edit 1:top 1,50:' TRÊS IMPORTANT: doit-être le dernier EDIT DÉCLARÉ :hide 1 ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ execute f$ ' avec execute, le programme est ouvert, et on continu. Si on veut EXECUTE_WAIT, rajouter les lignes suivantes ' à noter que EXECUTE_WAIT, a pour défaut de prendre 100% de ressource. En mettant les lignes suivantes à la place ' cela ne prend que très peu de ressource ' ______________________________________________________________________________ end ' attente du calendrier repeat : flag%= HANDLE_FORM("Get date") : wait 10 : until flag%>0 or scancode =27 ' attente de fermeture du calendrier repeat : flag%= HANDLE_FORM("Get date") : wait 100 : until flag%=0 ' ______________________________________________________________________________ message "le calendrier est fermé" :' état du calendrier message text$(1)
Je viens de remarquer que j'ai oublié d'enlever le END à la ligne 22 Le END, évitait d'enlever les instructions qui suivent , et garder le principe de remplacement de EXECUTE_WAIT
Dernière édition par cosmos70 le Mer 9 Mai 2012 - 14:16, édité 1 fois |
|
Invité Invité
| Sujet: Re: Calendrier Mer 9 Mai 2012 - 10:50 | |
| Je viens de remarquer que j'ai oublié d'enlever le END à la ligne 22 Le END, évitait d'enlever les instructions qui suivent , et garder le principe de remplacement de EXECUTE_WAIT.annulé |
|
Invité Invité
| Sujet: Re: Calendrier Sam 12 Mai 2012 - 22:31 | |
| En recherchant un lien pour un programme sur les chemins courts, j'ai remarqué le programme de Klaus, concernant un calendrier pop-pup. Je viens de l'essayer, vu que j'avais perdu de vue ce programme, et fonctionne bien. Donc vous pouvez délaisser ce poste, et aller sur celui de Klaus. Au moins le problème de ressource que vous redoutez, vous ne l'aurez pas. |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Calendrier Dim 13 Mai 2012 - 1:03 | |
| Merci pour le petit coup de pouce ... Je ne voulais en aucun cas me poser en concurrence par rapport à toi. Chaque solution est intéressante et apporte un nouvel angle de vue. | |
|
Invité Invité
| Sujet: Re: Calendrier Dim 13 Mai 2012 - 1:22 | |
| Merci bien. Mais la concurrence, c'est moi qui l'ai fait. Donc c'est à moi de m'excuser. (De toute façon mes programme en AutoIt, on les fuit comme la peste) |
|