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
» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Klaus Aujourd'hui à 19:48

» KGF_dll - nouvelles versions
par pascal10000 Aujourd'hui à 17:27

» Mah-Jong européen new-look
par Minibug Hier à 22:31

» track_bar circulaire
par Klaus Hier à 13:54

» API Windows
par Klaus Hier à 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
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 : 6018
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
Marc



Nombre de messages : 549
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 : 6018
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 : 8002
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 : 1626
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 : 475
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 : 6018
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
Minibug

avatar

Nombre de messages : 2410
Age : 51
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 http://gpp.panoramic.free.fr
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 :: Vos sources, vos utilitaires à partager-
Sauter vers: