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
» Problème de compilateur.
par Pedro Alvarez Hier à 20:01

» COMPILATEUR V 0.9 beta 8 du 18 aout 2017
par Pedro Alvarez Hier à 19:54

» Pb 17 (en analyse): ITEM_SELECT ne fonctionne pas
par Jack Jeu 17 Aoû 2017 - 19:26

» Compilateur FBPano
par Mike Jeu 17 Aoû 2017 - 13:52

» 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 (en analyse): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (en analyse): 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

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

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 petit éphéméride

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



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

MessageSujet: Un petit éphéméride   Sam 17 Sep 2016 - 22:34

Code:
LABEL Majdat,Clk,Afmail,Sendmail,Aftel
DIM pg%,x%,y%,nc%,nr%,wc%,hr%,c%,r%,i%,js$,a$,b$,c$,aa%,mm%,jj%,m%,j%,lm%(12),mo$(12)
DIM mo%,ao%,fmel$,ftel$,wm$,w100%,ct%,cf%
fmel$ = "C:\TEXTES\Admail.txt": ' liste des adresses email
ftel$ = "C:\TEXTES\Annucompact.txt": ' annuaire téléphonique compact
wm$ = "C:\PROGRA~2\WINDOW~1\WinMail.exe": ' Windows Mail

js$ = "LuMaMeJeVeSaDI"
DATA 31,28,31,30,31,30,31,31,30,31,30,31
FOR i% = 1 TO 12: READ lm%(i%): NEXT i%
DATA "JANVIER","FÉVRIER","MARS","AVRIL","MAI","JUIN","JUILLET","AOÙT","SEPTEMBRE"
DATA "OCTOBRE","NOVEMBRE","DÉCEMBRE"
FOR i% = 1 TO 12: READ mo$(i%): NEXT i%

nc% = 7: nr% = 7: ' nb de colonnes et rangées
wc% = 25: hr% = 20: ' dimensions des cases

WIDTH 0,nc%*wc%+8: HEIGHT 0,185: COLOR 0,0,180,180: BORDER_HIDE 0
    TOP 0,(SCREEN_Y-HEIGHT(0))/2: LEFT 0,(SCREEN_X-WIDTH(0))/2
    FONT_NAME 0,"Arial"
ALPHA 1: TOP 1,2: LEFT 1,20: FONT_SIZE 1,12: FONT_BOLD 1: FONT_COLOR 1,255,255,128

a$ = DATE$
jj% = VAL(LEFT$(a$,2)): mm% = VAL(MID$(a$,4,2)): aa% = VAL(RIGHT$(a$,4))
mo% = mm%: ao% = aa%
pg% = 2
x% = 4: y% = 20: GOSUB Majdat

FONT_BOLD_OFF pg%
BUTTON 10: TOP 10,TOP(pg%)+HEIGHT(pg%)+2: LEFT 10,4: WIDTH 10,20: CAPTION 10,"<<"
BUTTON 11: TOP 11,TOP(10): LEFT 11,WIDTH(10)+5: WIDTH 11,WIDTH(10): CAPTION 11,"<"
BUTTON 12: TOP 12,TOP(11): LEFT 12,LEFT(11)+WIDTH(11)+1: WIDTH 12,WIDTH(11): CAPTION 12,">"
BUTTON 13: TOP 13,TOP(12): LEFT 13,LEFT(12)+WIDTH(12)+1: WIDTH 13,WIDTH(12): CAPTION 13,">>"
BUTTON 14: TOP 14,TOP(13): LEFT 14,LEFT(13)+WIDTH(13)+2: WIDTH 14,29: CAPTION 14,"Mail"
BUTTON 15: TOP 15,TOP(14): LEFT 15,LEFT(14)+WIDTH(14)+1: WIDTH 15,29: CAPTION 15,"Tél."
BUTTON 16: TOP 16,TOP(15): WIDTH 16,30: LEFT 16,WIDTH(0)-34: CAPTION 16,"Quit"
FOR i% = 10 TO 16: HEIGHT i%,20: FONT_BOLD i%: ON_CLICK i%,Clk: NEXT i%
FOR i% = 10 TO 13: FONT_SIZE i%,10: NEXT i%

w100% = 420
FORM 100: HIDE 100: LEFT 100,LEFT(0)-w100%: WIDTH 100,w100%: HEIGHT 100,700
    BORDER_SMALL 100: CAPTION 100,"     -   ADRESSES   EMAIL   -"
LIST 101: PARENT 101,100: WIDTH 101,220: HEIGHT 101,HEIGHT(100)-40: ON_CLICK 101,Sendmail
    FONT_SIZE 101,10: FONT_COLOR 101,0,0,255
LIST 102: PARENT 102,100: LEFT 102,WIDTH(101): WIDTH 102,180: HEIGHT 102,HEIGHT(101)
    FONT_SIZE 102,10
BUTTON 103: PARENT 103,100: TOP 103,HEIGHT(100)-60: WIDTH 103,WIDTH(100)-20
    FONT_BOLD 103: FONT_SIZE 103,12: CAPTION 103,"Cliquer une adresse pour créer un message"
IF FILE_EXISTS(fmel$) = 1
    FILE_OPEN_READ 1,fmel$
    WHILE FILE_EOF(1) = 0
        FILE_READLN 1,a$: b$ = "": i% = INSTR(a$," ")
        IF i% > 0
            b$ = RIGHT_POS$(a$,i%+1): a$ = LEFT$(a$,i%-1)
         END_IF
         ITEM_ADD 101,a$: ITEM_ADD 102,b$
    END_WHILE
    FILE_CLOSE 1
ELSE
    HIDE 14
END_IF

FORM 120: HIDE 120: LEFT 120,LEFT(0)+WIDTH(0): WIDTH 120,250: HEIGHT 120,SCREEN_Y-30
    BORDER_SMALL 120
LIST 121: PARENT 121,120: FULL_SPACE 121
IF FILE_EXISTS(ftel$) = 1
    FILE_LOAD 121,ftel$
ELSE
    HIDE 15
END_IF
END
' ==============================================================================
Majdat:
lm%(2) = 28: Bisex(aa%): IF rs_bi% = 1 THEN lm%(2) = 29
a$ = "- "+mo$(mm%)+"  "+STR$(aa%)+" -": i% = TEXT_WIDTH(a$,1)
LEFT 1,(WIDTH(0)-i%)/2: CAPTION 1,a$
GridPict(pg%,x%,y%,nc%,nr%,wc%,hr%)
FONT_SIZE pg%,10: FONT_BOLD pg%
ct% = 0: cf% = 13158655: ' texte noir sur bleu clair
FOR i% = 1 TO 7: ' jours de la semaine
    a$ = MID$(js$,i%*2-1,2)
    GridPictEcr(pg%,wc%,hr%,i%,1,a$,1,1,ct%,cf%)
NEXT i%
FONT_BOLD_OFF pg%: FONT_COLOR pg%,0,0,255
r% = 2
FOR j% = 1 TO lm%(mm%): ' quantièmes du mois
    Joursem(aa%,mm%,j%): c% = rs_js%: IF c% = 0 THEN c% = 7
    ct% = 0: cf% = 16777215
    IF j% = jj% AND mm% = mo% AND aa% = ao%
        FONT_BOLD pg%: ct%=65536*180: cf%=65536*255+256*255: ' txt rouge sur jaune
    END_IF
    IF r% > nr% THEN nr% = nr%+1
    GridPictEcr(pg%,wc%,hr%,c%,r%,STR$(j%),1,1,ct%,cf%)
    FONT_BOLD_OFF pg%: FONT_COLOR pg%,0,0,255
    IF c% = 7 THEN r% = r%+1
NEXT j%
RETURN
' ==============================================================================
Clk:
i% = NUMBER_CLICK
SELECT i%
    CASE 10: aa% = aa%-1: GOSUB Majdat
    CASE 11: mm% = mm%-1: IF mm% < 1 THEN mm% = 12: aa% = aa%-1
             GOSUB Majdat
    CASE 12: mm% = mm%+1: IF mm% = 13 THEN mm% = 1: aa% = aa%+1
             GOSUB Majdat
    CASE 13: aa% = aa%+1: GOSUB Majdat
    CASE 14: GOSUB Afmail
    CASE 15: GOSUB Aftel
    CASE 16: TERMINATE
END_SELECT

RETURN
' ==============================================================================
Afmail:
SHOW 100
RETURN
' ==============================================================================
Sendmail:
a$ = ITEM_INDEX$(101)
EXECUTE "cmd.exe /c start /B "+wm$+" /mailurl:mailto:"+a$: ' lancement Windows Mail
HIDE 100
RETURN
' ==============================================================================
Aftel:
SHOW 120
RETURN
' ==============================================================================
SUB GridPict(pg%,x%,y%,nc%,nr%,wc%,hr%)
  ' Création d'un picture/grille npg% en x%,y%, nc%/nr% colonnes/rangées,
  ' wc%,hr% dimensions cellules largeur/hauteur (pixels)
  DIM_LOCAL i%
  IF OBJECT_EXISTS(pg%) = 0
    PICTURE pg%: TOP pg%,y%: LEFT pg%,x%: WIDTH pg%,nc%*wc%+1: HEIGHT pg%,nr%*hr%+1
  ELSE
    CLS
  END_IF
  2D_TARGET_IS pg%
  FOR i% = 0 TO WIDTH(pg%) STEP wc%
    2D_LINE i%,0,i%,HEIGHT(pg%)
  NEXT i%
  FOR i% = 0 TO HEIGHT(pg%) STEP hr%
    2D_LINE 0,i%,WIDTH(pg%),i%
  NEXT i%
END_SUB
' ==============================================================================
SUB GridPictxy(pg%,wc%,hr%,c%,r%)
  ' Coordonnées de la cellule colonne c%, rangée r% -> x%,y% (picture/grille pg%)
  x% = (c%-1)*wc%+1
  y% = (r%-1)*hr%+1
END_SUB
' ==============================================================================
SUB GridPictEcr(pg%,wc%,hr%,c%,r%,tx$,ah%,av%,ct%,cf%)
  ' Ecriture texte tx$ dans la cellule c%,r% du picture/grille pg%
  ' (attributs courants): ah%,av% = alignement horizontal et vertical
  ' (0 gauche ou haut, 1 centre, 2 droite ou bas)
  ' ct%: couleur texte (-1 si inchangé), cf%= couleur fond (-1 si inchangé)
  ' (format couleurs: r*65536 + g*256 + b)
  DIM_LOCAL x%,y%,wt%,ht%,cr%,cg%,cb%
  x% = (c%-1)*wc%+3: ' coordonnées de la case cible
  y% = (r%-1)*hr%+1
  2D_TARGET_IS pg%
  IF cf% >= 0: ' couleur fond de la case
      cr%=INT(cf%/65536): cg%=BIN_AND(cf%,65280)/256: cb%=BIN_AND(cf%,255)
      2D_FLOOD x%+2,y%+2,cr%,cg%,cb%
      2D_FILL_COLOR cr%,cg%,cb%
  END_IF
  wt% = TEXT_WIDTH(tx$,pg%): ht% = TEXT_HEIGHT(tx$,pg%)
  IF ah% > 0
    SELECT ah%
        CASE 1: WHILE wt%<wc%: tx$=" "+tx$+" ": wt%=TEXT_WIDTH(tx$,pg%): END_WHILE
        CASE 2: WHILE wt%<wc%: tx$=" "+tx$: wt%=TEXT_WIDTH(tx$,pg%): END_WHILE
    END_SELECT
    tx$ = RIGHT_POS$(tx$,2)
  END_IF
  IF av% > 0
    SELECT av%
        CASE 1: y% = y%+(hr%-ht%)/2
        CASE 2: y% = y%+ hr%-ht%-1
    END_SELECT
  END_IF
  PRINT_TARGET_IS pg%
  IF ct% >= 0: ' couleur texte
      cr%=INT(ct%/65536): cg%=BIN_AND(ct%,65280)/256: cb%=BIN_AND(ct%,255)
      FONT_COLOR pg%,cr%,cg%,cb%
  END_IF
  PRINT_LOCATE x%,y%: PRINT RTRIM$(tx$)
  2D_FILL_COLOR 255,255,255
END_SUB
' ==============================================================================
SUB Joursem(Annee,Mois,Jour)
  ' Jour de la semaine d'une date donnée (0= Dimanche à 6= Samedi) -> rs_js%
  DIM_LOCAL js_d
  IF VARIABLE("rs_js%") = 0 THEN DIM rs_js%
  js_d = Annee
  IF Mois<3 THEN js_d = js_d-1
  js_d=INT(23*Mois/9)+Jour+4+Annee+INT(js_d/4)-INT(js_d/100)+INT(js_d/400)
  IF Mois>=3 THEN js_d = js_d-2
  rs_js% = js_d-7*INT(js_d/7)
END_SUB
' ==============================================================================
SUB Bisex(Annee)
  IF VARIABLE("rs_bi%") = 0 THEN DIM rs_bi%
  rs_bi% = 0
  IF (FRAC(Annee/4)=0 AND FRAC(Annee/100)>0) OR FRAC(Annee/400)=0 THEN rs_bi% = 1
END_SUB
' ==============================================================================
Positionné arbitrairement au centre de l'écran (modulable, évidemment).
Affiche au lancement le mois en cours.

- Les touches flèches servent à se déplacer '<' et '>' d'un mois, et '<<' et '>>' d'une année.
- La touche 'Mail' affiche une liste d'adresses email, contenues dans un fichier texte séquentiel, comprenant par ligne l'adresse mail elle-même suivie éventuellement d'un espace et d'un court commentaire.
Le clic sur une adresse provoque l'affichage de la messagerie avec l'adresse destinataire préremplie: il s'agit ici de Windows Mail, mais il faudrait adapter pour d'autres messageries.
- La touche 'Tél.' affiche un annuaire téléphonique tout simple, également dans un fichier texte (il faut adapter la taille des lignes à celle de la fenêtre (ou l'inverse !  Very Happy )
- Et 'Quit' pour quitter.

Rien de révolutionnaire, c'est un gadget sans prétention.

Les adresses des ressources, en tête (fichiers et messagerie) sont évidemment à adapter.


Dernière édition par JL35 le Mar 20 Sep 2016 - 18:53, édité 4 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc37



Nombre de messages : 443
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: Un petit éphéméride   Dim 18 Sep 2016 - 1:57

Bonjour JL35,

Après avoir ajusté les paramètres dont tu as parlé et créé les deux fichiers .TXT, tout fonctionne à merveille !

Format du fichier "adresses mail" créé pour les tests :

toto@free.fr Louis
tata@orange.fr Simone
xxxxx@sfr.fr Bidule
...

Pas de problème et les années bissextiles sont bien calculées.

Merci pour ce code.

Petit gadget sympa !

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Un petit éphéméride   Dim 18 Sep 2016 - 14:08

Merci Marc pour le retour, c'est sympa et ça fait plaisir ! Smile

PS du coup je viens d'ajouter la possibilité d'écrire dans les cases de la picture/grille avec une couleur donnée sur un fond de couleur donnée..
Ici le jour actuel est rouge sur fond jaune, et les noms des jours sur fond bleu clair.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7968
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 18 Sep 2016 - 15:34

Joli petit outils JL35.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

Nombre de messages : 1594
Date d'inscription : 13/09/2009

MessageSujet: +++   Mar 20 Sep 2016 - 15:42

Oui, un petit bidule bien utile, bravo !
cheers alien king
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
silverman

avatar

Nombre de messages : 464
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Un petit éphéméride   Mar 20 Sep 2016 - 17:34

@JL35
j'obtiens l'erreur suivante:
(93)FILE does not exist(not created). line 50 

pareil en ligne 63
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Un petit éphéméride   Mar 20 Sep 2016 - 18:51

Bonjour silverman,

Il s'agit des deux fichiers répertoriés en tête (avec adresses à adapter):
- le fichier des adresses email
- le répertoire téléphonique
dont j'ai donné la structure (très simple: voir le post de Marc37 pour les adresses email, format libre pour le téléphone, c'est rudimentaire).
Mais effectivement j'aurais dû d'entrée tester la présence de ces deux fichiers qui sont des ressources 'externes', et qui après tout ne sont pas forcément obligatoires.

J'ai rajouté ce test là-haut.
Et j'ai désactivé l'affichage des boutons 'Mail' et/ou 'Tél.' si ces fichiers n'existent pas.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Un petit éphéméride   Mar 20 Sep 2016 - 20:54

Pas mal du tout. Wink
Bravo JL35 ! cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Un petit éphéméride   

Revenir en haut Aller en bas
 
Un petit éphéméride
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un petit bonjour / bonsoir !
» Petit Cafe Gratuit au McDo du 15 au 28 novembre
» Petit billet d'humeur
» Présentation d'un petit suisse
» McKibbins petit dejeuner

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 :: Vos sources, vos utilitaires à partager-
Sauter vers: