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.
Horloge Emptypar Pedro Aujourd'hui à 10:37

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

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

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

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

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

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

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

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

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

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

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

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

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

» fichier.exe
Horloge 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
-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
Voir le deal

 

 Horloge

Aller en bas 
+2
Jicehel
Klaus
6 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Horloge Empty
MessageSujet: Horloge   Horloge EmptyVen 16 Mar 2012 - 1:42

Voici un petit exercice autour du du sujet de l'horloge. Rien de bien émouvant: une horloge analogique avec petite et grande aiguille, une trotteuse et l'affichage digital. Mais, il y a quelques petits plus:
- on peut paramétrer l'horloge et cliquant sur la surface de l'horloge (ou sur le "?"). Un écran apparaît alors avec un menu et quelques boutons et zones faciles à comprendre. Cela permet en particulier d'afficher ou cacher la trotteuse, afficher ou cacher l'affichage digital, mais surtout de redimensionner l'horloge à l'aide d'une SCROLL_BAR. Cela m'a amusé de réaliser ce petit gadget.

Et cerise sur le gateau: on ne peut PAS fermet l'horloge par la croix ! Elle réapparaît immédiatement ! Pour sortir du programme, il faut ouvrir la page de configuration en cliquant sur l'horloge, puis choisir le menu Fichiers/Sortir ! Comment c'est fait ? La page de configuration est la form 0, et l'horloge est une form secondaire avec une routine ON_CLOSE contenant un SHOW de la même form - c'est aussi simple que cela ! Voilà le moyen de faire une fenêtre "infermable" avec bordure !

Code:
' horloge.bas

' Affichage d'une horloge paramétrable.

' *** routine principale
label labels : gosub labels
gosub variables
gosub form0
gosub menu
gosub GUI
gosub initialisations
end

' *** définition de tous les labels
labels:
  label variables, form0, menu, GUI, initialisations
  label close_apropos
  label close_horloge, click_horloge, dessiner_horloge, tick
  label sortir, aide, apropos, cacher
  label changer_taille, modif_taille, fixer_taille, dim_horloge
  return

' *** définition de toutes les variables
variables:
  dim no%, parent_1%, parent_2%, no_horloge%, no_timer%
  dim nom_fichier$, no_open%, no_save%, no_options%
  dim flag_present%, flag_modif%, no_val_options%, no_vide%
  dim no_modif%, no_numerique%, no_trotteuse%
  dim no_apropos%, no_aide%
  dim i%, j%, k%, s$
  dim ang, hh%, mm%, ss%, flag%, centre%, rayon%
  dim nom_rep$, nom_ini$

  dim nl$ : nl$ = chr$(13)+chr$(10)
  dim version$ : version$ = "V01.00"
  dim creation$ : creation$ = "11 Mars 2012"
  dim taille% : taille% = 100
  dim pi : pi = 4*atn(1)
  return
 
' *** configuration de l'écran principal
form0:
  hide 0
  return

' *** création des menus
menu:
  no% = no% + 1 : main_menu no% : parent_1% = no%

  no% = no% + 1 : sub_menu no% : parent no%,parent_1%
    parent_2% = no% : caption no%,"Fichier"
  no% = no% + 1 : sub_menu no% : parent no%,parent_2%
    caption no%,"Sortir" : on_click no%,sortir

  no% = no% + 1 : sub_menu no% : parent no%,parent_1%
    parent_2% = no% : caption no%,"Aide"
  no% = no% + 1 : sub_menu no% : parent no%,parent_2%
    caption no%,"Aide" : on_click no%, aide
  no% = no% + 1 : sub_menu no% : parent no%,parent_2%
    caption no%,"A-propos" : on_click no%, apropos

  return
 
création de tous les objets Panoramic
GUI:
' *** d'abord les objets invisibles
'    dialogues, list, timer, ...
  no% = no% + 1 : open_dialog no% : no_open% = no%
    filter no%,"Fichier texte|*.txt"
  no% = no% + 1 : save_dialog no% : no_save% = no%
    filter no%,"Fichier texte|*.txt"
  no% = no% + 1 : timer no% : timer_off no% : no_timer% = no%
    timer_interval no%,200 : on_timer no%,tick
  no% = no% + 1 : picture no% : hide no% : no_vide% = no%
    width no%,400 : height no%,400

' *** les objets de la form 0 *
  no% = no% + 1 : button no% : top no%,20 : left no%,20 : no_modif% = no%
    width no%,150
    caption no%,"Modifier la taille" : on_click no%,modif_taille
  no% = no% + 1 : alpha no% : top no%,20 : left no%,20 : hide no%
    caption no%,"Dimension de l'horloge:"
  no% = no% + 1 : scroll_bar no% : top no%,40 : left no%,20 : hide no%
    width no%,200 : min no%,50 : max no%,400 : position no%,taille%
    on_change no%,changer_taille
  no% = no% + 1 : button no% : top no%,40 : left no%,250 : hide no%
    width no%,150
    caption no%,"Valider la taille" : on_click no%,fixer_taille
  no% = no% + 1 : check no% : top no%,70 : left no%,20 : no_numerique% = no%
    caption no%,"Afficher en format numérique" : width no%,200
    mark_on no%
  no% = no% + 1 : check no% : top no%,100 : left no%,20 : no_trotteuse% = no%
    caption no%,"Afficher la trotteuse" : width no%,200
    mark_on no%
  no% = no% + 1 : button no% : top no%,130 : left no%,20
    caption no%,"Cacher les options" : width no%,200
    on_click no%,cacher

' *** page avec l'horloge
  no% = no% + 1 : form no% : hide no% : no_horloge% = no% : parent_1% = no%
    caption no%,"Horloge": border_small no% : gosub dim_horloge
    on_close no%,close_horloge
  no% = no% + 1 : picture no% : parent no%,parent_1%
    full_space no% : on_click no%,click_horloge
  no% = no% + 1 : image no% : parent no%,parent_1%
  no% = no% + 1 : image no% : parent no%,parent_1%  : ' pour image vide
    2d_target_is no_vide% : 2d_image_copy no%,0,0,399,399

' *** la fenêtre a-propos avec ses champs
  no% = no% + 1 : form no% : hide no% : no_apropos% = no% : parent_1% = no%
    caption no%,"A-propos"
    top no%, 200 : left no%,200 : height no%,150 : width no%,250
    on_close no%,close_apropos
  no% = no% + 1 : alpha no% : parent no%,parent_1%
    top no%,20 : left no%,20
    s$ = "Horloge"+nl$
    s$ = s$ + "Version: "+version$+nl$
    s$ = s$ + "Date: "+creation$+nl$
    s$ = s$ + "Auteur: Klaus"+nl$
    caption no%,s$

' *** la fenêtre d'aide avec ses champs
  no% = no% + 1 : form no% : hide no% : no_aide% = no% : parent_1% = no%
    caption no%,"Aide"
    top no%, 200 : left no%,200 : height no%,400 : width no%,400
    on_close no%,close_apropos
  no% = no% + 1 : alpha no% : parent no%,parent_1%
    top no%,20 : left no%,20
    s$ = "Mode d'emploi"+nl$+nl$
    s$ = s$ + "Un clic dans l'horloge montre la page des options."+nl$
    s$ = s$ + "Le bouton Modifier la taille donne accès au réglage"+nl$
    s$ = s$ + "de la taille de l'horloge."+nl$
    s$ = s$ + "Le bouton Valider la taille fixe la taille choisie."+nl$
    s$ = s$ + "Une case à cocher pemet d'afficher ou non le format numérique."+nl$
    s$ = s$ + "Une case à cocher permet d'afficher ou non la trotteuse."+nl$
    s$ = s$ + "Les options sont automatiquement mémorisées à la sortie."+nl$+nl$
    s$ = s$ + "On ne peut pas fermer l'horloge par la croix:"+nl$
    s$ = s$ + "elle réapparaît automatiquement. Pour sortir du programme,"+nl$
    s$ = s$ + "il faut utiliser la fonction Sortir du menu."
    caption no%,s$

  return
 
' *** toutes les initialisations du programme
initialisations:
' répertoire de l'application, nom du fichier ini
  s$ = param_value$(0)
  nom_rep$ = file_extract_path$(s$)
  if instr(lower$(s$),"\temp\")>0 then nom_rep$ = "C:\temp\"
  nom_ini$ = nom_rep$ + "horloge.ini" : ' adapter le nom du fichier ini
  dir_dialog no_open%,nom_rep$
  dir_dialog no_save%,nom_rep$
  if dir_exists(nom_rep$)=0 then dir_make nom_rep$
  if file_exists(nom_ini$)=0 : ' créer le fichier ini vide s'il n'existe pas
    file_open_write 1,nom_ini$
    file_writeln 1,"; créé le "+date$+" à "+time$+" heures"
    file_writeln 1,"taille="+str$(taille%)
    file_close 1
  end_if
' traiter le fichier ini
  file_open_read 1,nom_ini$
  file_readln 1,s$
  while file_eof(1)=0
    file_readln 1,s$
    if left$(s$,7)="taille=" then taille% = val(mid$(s$,instr(s$,"=")+1,len(s$)))
    if s$="numerique=1" then mark_on no_numerique%
    if s$="numerique=0" then mark_off no_numerique%
    if s$="trotteuse=1" then mark_on no_trotteuse%
    if s$="trotteuse=0" then mark_off no_trotteuse%
  end_while
  file_close 1
  print_target_is no_horloge%+1
  gosub dim_horloge
  full_space no_horloge%+1
  gosub dessiner_horloge
  show no_horloge%
  timer_on no_timer%
  return

' *** on a cliqué sur l'horloge
click_horloge:
  show 0
  return

' *** cacher la fenêtre des options
cacher:
  hide 0
  return
 
' *** l'horloge se ferme
close_horloge:
  flag% = 1
  return

' *** dessiner l'horloge - parties fixes
dessiner_horloge:
  2d_target_is no_horloge%+1
  2d_image_paste no_horloge%+3,0,0
  print_locate 5,5 : print "?"
  font_color no_horloge%+1,0,0,255
  centre% = taille%/2 + 10
  rayon% = taille%/2 - 10
  2d_circle centre%,centre%,rayon%
  2d_circle centre%,centre%,3
  for ang=0 to 2*pi step pi/6
    2d_circle centre%+rayon%*cos(ang),centre%+rayon%*sin(ang),3
  next ang
  2d_image_copy no_horloge%+2,0,0,width(no_horloge%+1)-1,height(no_horloge%+1)-1
  return
 
' *** modifier la taille de l'horloge
modif_taille:
  hide no_modif%
  show no_modif%+1
  show no_modif%+2
  show no_modif%+3
  timer_off no_timer%
  return
 
' *** fixer la taille modifiée de l'horloge
fixer_taille:
  hide no_modif%+1
  hide no_modif%+2
  hide no_modif%+3
  show no_modif%
  timer_on no_timer%
  return

' *** changer la taille de l'horloge
changer_taille:
  timer_off no_timer%
  taille% = position(no_modif%+2)
  gosub dim_horloge
  full_space no_horloge%+1
  gosub dessiner_horloge
  timer_on no_timer%
  return
 
' *** dimensionner la fenêtre de l'horloge
dim_horloge:
  height no_horloge%,taille%+50 : width no_horloge%,taille%+20
  top no_horloge%, screen_y-taille%-50
  left no_horloge%,screen_x-taille%-20
  return

' *** tick de l'horloge
tick:
  s$ = time$
  hh% = val(left$(s$,2)) - 3
    if hh%<0 then hh% = hh% + 12
  mm% = val(mid$(s$,4,2)) - 15
    if mm%<0 then mm% = mm% + 60
  ss% = val(right$(s$,2)) - 15
    if ss%<0 then ss% = ss% + 60
  2d_image_paste no_horloge%+2,0,0
  2d_pen_width 2
  2d_line centre%,centre%,centre%+rayon%/2*cos(hh%*pi/6),centre%+rayon%/2*sin(hh%*pi/6)
  2d_line centre%,centre%,centre%+rayon%*7/8*cos(mm%*pi/30),centre%+rayon%*7/8*sin(mm%*pi/30)
  2d_pen_width 1
  if checked(no_trotteuse%)=1
    2d_pen_color 255,0,0
    2d_line centre%,centre%,centre%+rayon%*4/5*cos(ss%*pi/30),centre%+rayon%*4/5*sin(ss%*pi/30)
  end_if
  if checked(no_numerique%)=1
    if taille%<100
      print_locate centre%-20,centre%+rayon%+5 : print s$
    else
      print_locate centre%-20,centre%+10 : print s$
    end_if
  end_if
  2d_pen_color 0,0,0
  if flag%=1
    show no_horloge%
    flag% = 1
  end_if
  return
 

' *** fonction "sortir dur programme"
sortir:
  file_open_write 1,nom_ini$
  file_writeln 1,"; créé le "+date$+" à "+time$+" heures"
  file_writeln 1,"taille="+str$(taille%)
  file_writeln 1,"numerique="+str$(checked(no_numerique%))
  file_writeln 1,"trotteuse="+str$(checked(no_trotteuse%))
  file_close 1
  inactive no_val_options%
  terminate
 

' *** afficher la page d'aide en mode non-modal
aide:
  show no_aide%
  to_foreground no_aide%
  return

' *** afficher la page à-propos en mode modal
apropos:
  inactive 0
  show no_apropos%
  return
 
' *** fermer la page a-propos
close_apropos:
  hide no_apropos%
  active 0
  to_foreground 0
  return

' *** montrer la page de gestion des options en mode modal
options:
  inactive 0 : show no_options%
  return

' *** fermer la page des options
close_options:
  hide no_options%
  active 0
  to_foreground 0
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Horloge Empty
MessageSujet: Re: Horloge   Horloge EmptyVen 16 Mar 2012 - 7:11

Le programme de JL35 s'est étoffé de nouvelles options Smile
Ton squelette Panoramic fonctionne
Test OK du programme
Par contre, dommage que la taille de l'affichage digital ne s'ajuste pas selon la taille définie ou tout au moins, que cela soit une des options Wink
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Horloge Empty
MessageSujet: Re: Horloge   Horloge EmptyVen 16 Mar 2012 - 12:04

Tu as raison pour la taille des chiffres - je vais ajouter cela. Merci d'avoir essayé mon programme !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Horloge Empty
MessageSujet: Re: Horloge   Horloge EmptyVen 16 Mar 2012 - 14:38

C'est un plaisir. Ils vont vite à tester et c'est très clair. tant que je peux, j'essaye de tout tester, mais bon, je ne peux pas tout le temps Wink
Revenir en haut Aller en bas
sergeauze

sergeauze


Nombre de messages : 391
Age : 72
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

Horloge Empty
MessageSujet: re:Horloge   Horloge EmptyVen 16 Mar 2012 - 15:16

bonjour
J'ai teste et ça fontionne parfaitement.
Tu sais faire parler Panoramic:pourquoi pas un horloge parlante!,(en option)
Dans le meme ordre d'idees, je me demande s'il tu envisages un jour de faire
ecrire panoramic ;on pourrait lui dicter nos code à la voix.
Avec toi et panoramic et une dll,il semble que tout soit possible!
Bonne journee
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Horloge Empty
MessageSujet: Re: Horloge   Horloge EmptyVen 16 Mar 2012 - 15:39

Je peux déjà répondre, la reconnaissance vocale est possible nativement sous W7 ou vista, ... mais c'est beaucoup moins fiable et plus complexe à écrire ^^, mais bon, tu peux déjà l'activer même sans Panoramic.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Horloge Empty
MessageSujet: Re: Horloge   Horloge EmptyVen 16 Mar 2012 - 15:55

Salut Klaus !
J'ai testé et ça fonctionne bien.
Je vais me plonger dans le code pour apprendre et m'inspirer le temps venu.
Merci pour tout ce que tu fais.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Horloge Empty
MessageSujet: Re: Horloge   Horloge EmptyVen 16 Mar 2012 - 17:02

Jolie et élégante ta petite pendulette, Klaus, la mienne était plus proche du cadran solaire !
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Horloge Empty
MessageSujet: Re: Horloge   Horloge EmptyVen 16 Mar 2012 - 17:22

Qu'est-ce quelle serait belle en 3D Very Happy

Heu! j'voudrais pas abuser... Embarassed


Bravo et A+

Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Horloge Empty
MessageSujet: Re: Horloge   Horloge EmptyVen 16 Mar 2012 - 17:36

Honettement Jean-Claude, avec le source 2D, la conversion en 3D est très simple.
Je pense même que je serais capable de le faire ^^ Si ce soir, demain ou dimanche, j'ai un peu de temps et à moins que Klaus ne s'y colle pour apprendre à manipuler la 3D à laquelle il semble vouloir s'initier, je peux m'en charger. Il suffit juste de transformer les commandes 2D en 3D, placer une camera et une lumière, ce qui n'est pas très sorcier. Après peut-être un peu plus complexe pour gérer le changement de taille, à voir...
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Horloge Empty
MessageSujet: Re: Horloge   Horloge EmptyVen 16 Mar 2012 - 18:11

Est-ce qu'il va falloir des lunettes spéciales ?
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Horloge Empty
MessageSujet: Re: Horloge   Horloge EmptyVen 16 Mar 2012 - 18:31

Non pas de lunettes spéciales, juste un petit casque adapté Very Happy

Horloge Docbro10


Dernière édition par Jean Claude le Ven 16 Mar 2012 - 18:57, édité 1 fois
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Horloge Empty
MessageSujet: Re: Horloge   Horloge EmptyVen 16 Mar 2012 - 18:54

ah ouais, c'est simple !
Revenir en haut Aller en bas
Contenu sponsorisé





Horloge Empty
MessageSujet: Re: Horloge   Horloge Empty

Revenir en haut Aller en bas
 
Horloge
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Horloge LED
» Une horloge à compteur mécanique!
» Une horloge digitale
» Une horloge inutile
» Une horloge mondiale

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: