FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Une autre façon de terminer une application.
par Francis-mr Aujourd'hui à 12:07

» Compilateur FBPano
par jean_debord Aujourd'hui à 10:09

» Copier / coller du texte à partir de la fenêtre de commandes
par jean_debord Aujourd'hui à 9:46

» COMPILATEUR V 0.9 beta 8 du 18 aout 2017
par papydall Aujourd'hui à 5:01

» Mettre en windows en veille
par papydall Aujourd'hui à 4:15

» Stretch_on ne stretch plus...
par papydall Hier à 15:22

» Pb 18 (en analyse): RESTORE_LABEL avec DATA à la fin
par Jack Hier à 13:21

» Problème de traitement des opérateurs avec le compilateur.
par Pedro Alvarez Sam 19 Aoû 2017 - 20:01

» Pb 17 (résolu): ITEM_SELECT ne fonctionne pas
par Jack Jeu 17 Aoû 2017 - 19:26

» un nouveau editeur panobasic
par Jean Claude Jeu 17 Aoû 2017 - 10:18

» Le compilateur.
par Pedro Alvarez Jeu 17 Aoû 2017 - 8:36

» Pb 16 (résolu): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (résolu): TIMER_ON plante à l'exécution
par Jack Mer 16 Aoû 2017 - 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Un Windows Phone 8 en Panoramic ?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

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

MessageSujet: Un Windows Phone 8 en Panoramic ?   Jeu 8 Aoû 2013 - 23:49

Je viens de remplacer mon téléphone portable par un Windows Phone 8. Découverte intéressante. En particulier l'écran d'accueil ou bureau qui est un clone de l'écran d'accueil de Windows 8 pour PC, juste adapté au format d'écran d'un smartphone.

Alors, je me suis dit: Panoramic peut-il faire cela ?

Réponse: Mais oui, c'est bien sûr...

Et j'ai fait une maquette dont vous trouverez le code ci-après. Au début, le programme affiche un seul carré rouge sur fond noir. Il porte le libellé "Sortir", et un clic dessus est le seul moyen de sortir du programme.

Un double-click sur le fond noir passe en mode "modif" et crée un nouveau carré, qui pour des raisons de simplicitité (ce n'est qu'une démo), se place par-dessus le carré "Sortir". Mais, en mode modification, le fond a changé de couleur, et une fenêtre supplémentaire est apparue. Elle affiche les informations significatives pour le pavé actif (dans notre cas, celui qui vient d'être créé, sinon les infos de n'importe quel pavé sur lequel on fait un simple clic gauche en mode modif). On peut alors, pour le pavé actif:
- changer le libellé et/ou changer la commande qui sera exéutée, puis valider par le bouton "Valider"
- déplacer le pavé par les 4 flèches
- changer le pavé de forme par la touche espace. On passe, de façon cyclique, de (104,104) en passant par (50,104) et (104,50) à (50,50 pour revenir à (104,104). Le libellé est repositionné automatiquement, au centre du pavé.

Un simple-clic gauche dans la partie noire ou la touche Echap sort du mode modif, la fenêtre de saisie disparaît et la couleur de fond redevient noire. Et les pavés réagissent au simple clic gauche en exécutant la commande qui leur est affectée.

Commandes possibles:
- la chaîne de caractères %/% signifie "Sortir". Le programme demande confirmation, puis fait terminate.
- un chemin relatif ou absolu vers un exécutable qui sera alors lancé par la commande execute
- un nom de fichier quelconque avec un chemin relatif ou absolu. Ce fichier sera alors ouvert par le programme associé à son extension
- une adresse URL commençant par http:// . Cette adresse sera alors chargée dans le browser internet par défaut, dans un nouvel onglet

Toutes ces commandes peuvent être placées dans la zone de saisie par ctrl/V (cas d'une URL, par exemple), ou à l'aide du bouton "..." à droite de la zone. Ce bouton ouvre un sélecteur de fichiers.

Voilà, de quoi s'amuser cinq minutes:
Code:

' cases:carrés ou rectangles de 100 ou 50 de côté
' emplacements: lignes et colonnes séparés de 4 pixels

labels()
form0()
form1000()
constantes()
variables()
initialisations()
end

sub labels()
  label click_gauche, click_double, click_check, key_down
  label valider, ouvrir_cmd
end_sub

sub form0()
  border_hide 0
  width 0,220
  color 0,0,0,0
  on_click 0,click_gauche
  on_double_click 0,click_double
  on_key_down 0,key_down
end_sub

sub constantes()
  dim c_taille1% : c_taille1% = 104
  dim c_taille2% : c_taille2% = 50
  ' agrandir variable "delai" s'il y a confusion entre simple et double click
  dim delai% : delai% = 200
end_sub

sub variables()
  dim tailles%(4,2)
  dim n_obj%, obj%(100,10)
  ' 1=taille  2=x  3=y 4,5,6=RGB  7=l  8=l1  9=c  10=c1
  dim obj$(100,2)  : ' 1=libellé  2=commande
  dim n_click%, double%, t%, modif%, scan%, x%, y%, l%, l1%, c%, c1%, t$
end_sub

sub initialisations()
  tailles%(1,1) = c_taille1%
  tailles%(1,2) = c_taille1%
  tailles%(2,1) = c_taille2%
  tailles%(2,2) = c_taille1%
  tailles%(3,1) = c_taille1%
  tailles%(3,2) = c_taille2%
  tailles%(4,1) = c_taille2%
  tailles%(4,2) = c_taille2%
  create_obj(1,1,0,1,0,255,0,0,"Sortie","%/%")
  timer 400 : timer_off 400 : timer_interval 400,delai% : on_timer 400,click_check
end_sub

sub create_obj(taille%,l%,l1%,c%,c1%,r%,g%,b%,lib$,cmd$)
  dim_local x%, y%
  x% = (c%-1)*(c_taille1% + 4) + 4 + c1%*c_taille2%
  y% = (l%-1)*(c_taille1% + 4) + 4 + l1%*c_taille2%
  n_obj% = n_obj% + 1
  obj%(n_obj%,1)  = taille%
  obj%(n_obj%,2)  = x%
  obj%(n_obj%,3)  = y%
  obj%(n_obj%,4)  = r%
  obj%(n_obj%,5)  = g%
  obj%(n_obj%,6)  = b%
  obj%(n_obj%,7)  = l%
  obj%(n_obj%,8)  = l1%
  obj%(n_obj%,9)  = c%
  obj%(n_obj%,10) = c1%
  obj$(n_obj%,1)  = lib$
  obj$(n_obj%,2)  = cmd$
  picture n_obj%
  configure_obj(n_obj%) : ' ,taille%,x%,y%,r%,g%,b%,lib$)
  on_click n_obj%,click_gauche
  on_double_click n_obj%,click_double
end_sub

sub configure_obj(n_obj%) : ' ,taille%,x%,y%,r%,g%,b%,lib$)
  dim_local w%, h%, taille%,x%,y%,r%,g%,b%,lib$
  taille% = obj%(n_obj%,1)
  x% = obj%(n_obj%,2)
  y% = obj%(n_obj%,3)
  r% = obj%(n_obj%,4)
  g% = obj%(n_obj%,5)
  b% = obj%(n_obj%,6)
  lib$ = obj$(n_obj%,1)
  top n_obj%,y% : left n_obj%,x%
  width n_obj%,tailles%(taille%,1)
  height n_obj%,tailles%(taille%,2)
  color n_obj%,r%,g%,b%
  w% = text_width(lib$,n_obj%)
  h% = text_height(lib$,n_obj%)
  print_target_is n_obj%
  2d_target_is n_obj%
  2d_fill_color r%,g%,b%
  print_locate (width(n_obj%)-w%)/2,(height(n_obj%)-h%)/2
  print lib$
end_sub

sub form1000()
  form 1000 : hide 1000 : border_hide 1000 : color 1000,255,127,127
  left 1000,left(0)+width(0)+10 : width 1000,400
  command_target_is 1000
  alpha 1001 : top 1001,20 : left 1001,20 : caption 1001,"Libellé:"
  alpha 1002 : top 1002,50 : left 1002,20 : caption 1002,"Commande:"
  edit 1011 : top 1011,20 : left 1011,120 : width 1011,200
  edit 1012 : top 1012,50 : left 1012,120 : width 1012,200
  button 1031 : top 1031,50 : left 1031,330 : width 1031,20
    caption 1031,"..." : font_bold 1031 : on_click 1031,ouvrir_cmd
  button 1041 : top 1041,100 : left 1041,120 : caption 1041,"Valider"
    on_click 1041,valider
  open_dialog 1099
  command_target_is 0
end_sub


click_gauche:
  double% = 1
  timer_on 400
  return

click_double:
  timer_off 400
  double% = 2
'  if double%=2
    n_click% = number_click
    modif% = 1
    color 0,50,50,50
    show 1000
    if n_click%=0
      create_obj(1,1,0,1,0,255,0,0,"Nouveau","")
      n_click% = n_obj%
      t$ = obj$(n_click%,1)
      text 1011, obj$(n_click%,1)
      text 1012, obj$(n_click%,2)
      if c%=1
        obj$(n_click%,1) = message_text$
        configure_obj(n_click%)
      end_if
    else
      text 1011, obj$(n_click%,1)
      text 1012, obj$(n_click%,2)
    end_if
    double% = 0
'  end_if
  return

click_check:
  timer_off 400
  if double%<>1 then return
  n_click% = number_click
  if n_click%=0
    modif% = 0
    hide 1000
    color 0,0,0,0
  else
    if modif%=0
      if obj$(n_click%,2)="%/%"
        if message_confirmation_yes_no("Terminer ?")=1 then terminate
      else
' message obj$(n_click%,2)
        execute obj$(n_click%,2)
      end_if
    else
      text 1011, obj$(n_click%,1)
      text 1012, obj$(n_click%,2)
    end_if
  end_if
  return
 
key_down:
  if modif%=0 then return
  if n_click%=0 then return
  scan% = scancode
  select scan%
    case 37 : ' gauche
      c% = obj%(n_click%,9)
      c1% = obj%(n_click%,10)
      if (c%=1) and (c1%=0) then return
      if c1%>0
        c1% = 0
      else
        c% = c% - 1
        c1% = 1
      end_if
      x% = (c%-1)*(c_taille1% + 4) + 4 + c1%*(c_taille2%+4)
      obj%(n_click%,2) = x%
      obj%(n_click%,9) = c%
      obj%(n_click%,10) = c1%
      configure_obj(n_click%)
    case 38 : ' haut
      l% = obj%(n_click%,7)
      l1% = obj%(n_click%,8)
      if (l%=1) and (l1%=0) then return
      if l1%>0
        l1% = 0
      else
        l% = l% - 1
        l1% = 1
      end_if
      y% = (l%-1)*(c_taille1% + 4) + 4 + l1%*(c_taille2%+4)
      obj%(n_click%,3) = y%
      obj%(n_click%,7) = l%
      obj%(n_click%,8)  = l1%
      configure_obj(n_click%)
    case 39 : ' droite
      c% = obj%(n_click%,9)
      c1% = obj%(n_click%,10)
      if (obj%(n_click%,1)=1) or (obj%(n_click%,1)=3)
        if c%=2 then return
      end_if
      if (c%=2) and (c1%=1) then return
      if c1%=0
        c1% = 1
      else
        c% = c% + 1
        c1% = 0
      end_if
      x% = (c%-1)*(c_taille1% + 4) + 4 + c1%*(c_taille2%+4)
      obj%(n_click%,2) = x%
      obj%(n_click%,9) = c%
      obj%(n_click%,10) = c1%
      configure_obj(n_click%)
    case 40 : ' bas
      l% = obj%(n_click%,7)
      l1% = obj%(n_click%,8)
      if (l%=8) and (l1%=1) then return
      if l1%=0
        l1% = 1
      else
        l% = l% + 1
        l1% = 0
      end_if
      y% = (l%-1)*(c_taille1% + 4) + 4 + l1%*(c_taille2%+4)
      obj%(n_click%,3) = y%
      obj%(n_click%,7) = l%
      obj%(n_click%,8) = l1%
      configure_obj(n_click%)
    case 32 : ' espace
      t% = obj%(n_click%,1) + 1
      if t%>4 then t% = 1
      obj%(n_click%,1) = t%
      if (obj%(n_click%,1)=1) or (obj%(n_click%,1)=3)
        if obj%(n_click%,9)=2
          c1% = 0
          x% = (c%-1)*(c_taille1% + 4) + 4 + c1%*(c_taille2%+4)
          obj%(n_click%,2) = x%
          obj%(n_click%,10) = c1%
        end_if
      end_if
      configure_obj(n_click%)
    case 27 : ' echap
      modif% = 0
      color 0,0,0,0
      hide 1000
    case 13 : ' CR
      t$ = obj$(n_click%,1)
      c% = message_input("Changement de libellé","Nouveau libellé:",t$)
      if c%=1
        obj$(n_click%,1) = message_text$
        configure_obj(n_click%)
      end_if
    case 36 : ' home
      t$ = obj$(n_click%,2)
      c% = message_input("Changement de commande","Nouvelle commande:",t$)
      if c%=1
        obj$(n_click%,2) = message_text$
        configure_obj(n_click%)
      end_if
  end_select
  return
 
valider:
  if n_click%=0 then return
  obj$(n_click%,1) = trim$(text$(1011))
  obj$(n_click%,2) = trim$(text$(1012))
  configure_obj(n_click%)
  set_focus 0
  return
 
ouvrir_cmd:
  t$ = file_name$(1099)
  if t$="_" then return
  if file_exists(t$)=1 then text 1012,t$
  return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
 
Un Windows Phone 8 en Panoramic ?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Windows Phone 8 débarque chez Bouygues Telecom
» HTC Windows Phone 8X chez Bouygues Telecom à partir de 9,90€
» Windows Blue : des améliorations pour Windows 8 et Windows Phone
» Windows Phone App Studio Bêta : déjà 30 000 projets d'applications
» Configuration Bouygues pour Windows Mobile

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Les inutilitaires-
Sauter vers: