FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Timer ? Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Timer ? Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Timer ? Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Timer ? Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Timer ? Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Timer ? Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Timer ? Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Timer ? Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Timer ? Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Timer ? Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Timer ? Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Timer ? Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Timer ? Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Timer ? Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Timer ? Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -55%
Friteuse sans huile – PHILIPS – Airfryer ...
Voir le deal
49.99 €

 

 Timer ?

Aller en bas 
2 participants
AuteurMessage
Tim




Nombre de messages : 17
Date d'inscription : 28/03/2009

Timer ? Empty
MessageSujet: Timer ?   Timer ? EmptyMar 7 Avr 2009 - 11:32

Voila, je continue le développement de mon appli ( sous XP maintenant, hé hé ... ) Et là je tombe sur une autre difficulté, moins sérieuse car je pourrais contourner cette fois, mais pour la beauté du truc, je voulais mettre un d'objet qui serait une sorte de timer qui déclencherait régulièrement un évènement automatiquement toutes les N milli seconde par exemple un peu comme si c'était un bouton qu'on cliquerait mais bien sur sans qu'on ait besoin de venir appuyer dessus vraiment et sans qu'il ne soit visible d'ailleurs. Mais je n'ai pas trouvé, je n'ai trouvé que TIME$, mais il ne me semble pas qu'il puisse déclencher d'évènement.

Car dans mon appli, j'ai un corps de programme qui vas se résumer à une boucle dont le but sera de m'incrémenter une variable de type static en attendant des évènements, de sorte qu'on puisse faire un chronométrage précis entre deux tops venant de l'ellectronique du projet par la carte d'entrée. Donc si j'avais cet objet Timer, ça me permettrais d'éviter un WAIT que je ne sais pas trop comment dimensionner car je ne sais pas le temps que de reste de la boucle va prendre pour s'executer. Cela dit je pense qu'on peu dans une première approximation considérer ce temps négligeable devant celui du WAIT mais forcément ça dégradera légèrement la précision de notre mesure.

Bref, je continue de dévolopper, je vous tiendrais au courant. ...

Amitiés à tous.
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

Timer ? Empty
MessageSujet: Re: Timer ?   Timer ? EmptyJeu 9 Avr 2009 - 23:19

Eh oui, le TIMER...
On me l'a déjà demandé plusieurs fois.

Je verrais son utilisation comme cela:

1 - déclaration:
TIMER N
N=numéro d'objet système

2 - activation du TIMER N:
TIMER_ON N

3 - désactivation du TIMER N:
TIMER_OFF N

4 - réglage de l'intervalle entre 2 exécutions du TIMER N:
TIMER_INTERVAL N,T
T est en millisecondes
T=500 par défaut

5 - indication du code à exécuter toutes les T millisecondes pour le TIMER N:
ON_TIMER N,Code_Timer

avec bien sûr le LABEL Code_Timer:

Code_Timer:
- - -
RETURN


Tout cela, c'est pour bientôt. Mais il est vrai qu'on peut contourner l'absence de TIMER par une boucle WHILE / END_WHILE contenant un WAIT
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Tim




Nombre de messages : 17
Date d'inscription : 28/03/2009

Timer ? Empty
MessageSujet: Re: Timer ?   Timer ? EmptyVen 10 Avr 2009 - 1:32

Oui oui, ce serait exactement comme cela qu'il serait à mon avis le plus utile. D'ailleurs à ce propos j'en profite pour te parler d'un truc sur panora que je ne maitrise pas trop :

Quand il y a un évènement de déclenché et qu'il branche à un label, comment sait-on s'il branche avec une sorte de goto label implicite ( qui supposerait donc un branchement définitif ) ou s'il branche avec plutôt une sorte de gosub label implicite ( qui supposerait qu'on puisse mettre comme dans ton exemple, un Return à la fin du code gérant l'exception ) ? Peut-on le choisir ? Sinon, moi ce qui me va le mieux en général c'est le deuxième cas, car sinon je ne sais pas où renvoyer à la fin, puisque je ne sais pas d'où je suis partit, puisque par définition, l'évènement m'est tombé dessus sans que je ne m'y attende. Or dans les tests que j'ai fait jusque-là j'ai eu l'impression que par exemple l'évènement déclenché par le clic d'un bouton à plutôt produit un goto label implicite ( car panora m'a répondu erreur au niveau du return à moins que j'ais mal compris un truc ).
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

Timer ? Empty
MessageSujet: Re: Timer ?   Timer ? EmptySam 11 Avr 2009 - 18:28

Quand un événement est déclenché, il y a un GOSUB implicite.
Mais il n'y a pas de retour à une quelconque ligne du programme.
Le RETURN qui termine le sous-programme de traitement de l'événement n'a pas d'autre fonction que de terminer l'exécution du sous-programme.
On peut mentalement le remplacer par "END_EVENT" ou quelque chose comme ça.

Le schéma typique est:

LABEL EXECUTE

OBJET N
ON_CLICK N, EXECUTE
- - -
END (fin du programme principal)

EXECUTE:
- - -
RETURN

Il faut bien noter que pour qu'un événement soit exécuté, le programme principal doit être terminé: le END doit avoir été exécuté pour que, à chaque fois que l'événement CLICK sur l'objet N apparait, il y ait exécution du bout de programme commençant pas EXECUTE.

Le mot-clé RETURN porte effectivement à confusion dans ce cas, car il ne renvoie à rien dans le programme principal. Je me demande si END_EVENT ne serait pas plus approprié?
C'est vrai que le mot-clé RETURN est aussi utilisé pour le retour d'un sous-programme appelé par GOSUB (abréviation de GO SUBROUTINE), et là, on "retourne" effectivement juste après l'appel.
Je pourrai mettre les 2 syntaxes dans le prochaines versions, puis un jour, ne laisser que END_EVENT...
Cela, en tout cas, mérite réflexion.
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Tim




Nombre de messages : 17
Date d'inscription : 28/03/2009

Timer ? Empty
MessageSujet: Re: Timer ?   Timer ? EmptyDim 12 Avr 2009 - 12:26

D'accord, c'est plus clair mais alors ça me pose un autre problème ( LOL, tu vas me dire que je suis chiant mais .... ) si le programme principal doit être finit pour qu'on puisse devenir sensible à un évènement alors comment peut-on par exemple mettre un bouton dans un programme qui permette de déclencher quelque chose ? Car si on met un tel bouton, c'est justement parce qu'on ne sait pas dans le programme quand le mec va appuyer dessus à l'extérieur de la machine ? Faut-il prévoir des arrêts périodiques du programme pour laisser cette sensibilité ? Mais alors dans ce cas, si jamais personne n'appuie sur le bouton, comment le programme va-t-il pouvoir repartir après le premier arrêt de contrôle ? Avec un Timer alors sans doute ? Mais dans ce cas ça implique qu'on pense dès le départ, tout le programme en programmation par évènement ou non alors ? Je veux dire qu'on ne doit pas mixer alors ? Cela dit, ça m'irait très bien car intuitivement, je ne sais pas pourquoi mais je conçois plus facilement la programmation de type évènement, seulement dans ce cas, il me faut alors forcément le Timer.
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

Timer ? Empty
MessageSujet: Re: Timer ?   Timer ? EmptyLun 13 Avr 2009 - 10:29

J'ai appelé "programme principal" le programme qui crée l'interface utilisateur. J'aurai pu utiliser le terme "programme créant les objets", cela aurait été plus clair.
Dès que l'exécution de ce programme s'est terminé, tous les événements qu'on a programmé à l'intérieur de ce programme (par ON_CLICK N, EXECN ou par ON_CHANGE N, EXECN) deviennent actifs. C'est seulement à ce moment que que tous les "bouts de programme" qui contiennent le code de traitement d'un événement peuvent s'exécuter de façon totalement asynchrone.

C'est à dire, que dès qu'on va appuyer par exemple sur un bouton de numéro N, il y aura éxécution du "bout de programme" qui commence par le label EXECN:
Mais dans ces "bouts de programme", on peut bien évidemment y mettre n'importe quel traitement sur n'importe que objet.

Pour mieux me faire comprendre, voici un programme très simple qui crée un bouton, puis qui affiche dans le bandeau de FORM0 le nombre de fois qu'on clique sur ce bouton. Exécute le, tu comprendras. (copier-coller dans l'éditeur)

Code:
dim i:rem pour compter le nombre de clicks
label compte

button 1
top 1,30:left 1,30
on_click 1,compte
caption 1,"clique"

rem on pourrait continer à construire l'"interface" mais on s'arrête ici
end

compte:
i=i+1
caption 0,"on a cliqué "+str$(i)+" fois"
return
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Contenu sponsorisé





Timer ? Empty
MessageSujet: Re: Timer ?   Timer ? Empty

Revenir en haut Aller en bas
 
Timer ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» IF Timer on or off ?
» encouragement
» timer info
» Problème de Timer.
» sub, timer et boucle repeat...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: