un Agenda..

Programmation d'applications complexes
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: un Agenda..

Message par falsam »

parce que tu utilises #titre deux fois

Code : Tout sélectionner

 TextGadget(#titre, 600, 10, 130, 35, "Agenda")
 ....
 TextGadget(#titre, 1, 1, 130, 35, "Calendrier by Dobro")
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Marc56
Messages : 2145
Inscription : sam. 08/févr./2014 15:19

Re: un Agenda..

Message par Marc56 »

Si tu regardes l'affectation des gadgets, tu verra que le 400 est déjà utilisé.
Dont en décalant de -10 tu l'affecte au 390

Code : Tout sélectionner

Gadget Number: 390
Gadget Handle: 3346254 ($330F4E)

     Type: TextGadget
On Window: 406

 Disabled: No
   Hidden: No
 Position: 600, 10
     Size: 130, 35

     Text: Agenda
     
--------------------------------------     

Gadget Number: 400
Gadget Handle: 6621172 ($6507F4)

     Type: TextGadget
On Window: 406

 Disabled: No
   Hidden: No
 Position: 1, 1
     Size: 130, 35

     Text: Calendrier by Dobro
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: un Agenda..

Message par Zorro »

falsam a écrit :parce que tu utilises #titre deux fois

Code : Tout sélectionner

 TextGadget(#titre, 600, 10, 130, 35, "Agenda")
 ....
 TextGadget(#titre, 1, 1, 130, 35, "Calendrier by Dobro")

ha bah oui :oops: :oops: :roll: :?

fais pas bon prendre de l'age :lol:

Merci :)
Dernière modification par Zorro le sam. 26/août/2017 17:50, modifié 1 fois.
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Marc56
Messages : 2145
Inscription : sam. 08/févr./2014 15:19

Re: un Agenda..

Message par Marc56 »

Très très utile le LibraryViewer, à appeler par le menu (Débogueur > voir les bibliothèques)
ou en ligne.

Code : Tout sélectionner

ShowLibraryViewer("gadget", #titre)
:idea: Je m'en sert tellement que je l'ai mis dans la barre d'outils.

Commode aussi pour voir les images en mémoire sans les afficher.

:arrow: Si tu déroule Images, tu verras que tu as construis 10x chaque image de jour 8O
(bon, c'est peut-être voulu ? je n'ai pas étudié ton code)

:wink:
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: un Agenda..

Message par Zorro »

Marc56 a écrit :Très très utile le LibraryViewer, à appeler par le menu (Débogueur > voir les bibliothèques)
ou en ligne.

Code : Tout sélectionner

ShowLibraryViewer("gadget", #titre)
:idea: Je m'en sert tellement que je l'ai mis dans la barre d'outils.

Commode aussi pour voir les images en mémoire sans les afficher.

:arrow: Si tu déroule Images, tu verras que tu as construis 10x chaque image de jour 8O
(bon, c'est peut-être voulu ? je n'ai pas étudié ton code)

:wink:
Je repondais a Falsam et tu as ecrit en meme temps ...

pour l'explication, Falsam a trouvé, j'utilisais 2 fois la meme constante pour 2 gadget differents ....

pour l'explication des images , tu remarquera , que j'utilise l'une de mes Librairie
pour faire un bouton coloré
donc la presence des images est normale !

je vais pas refaire la présentation de ma librairie ici ,
http://forums.purebasic.com/english/vie ... bbeff980cd
mais le but etait de pouvoir facilement
disposer de bouton qui permettent de choisir une fonte, et une couleur d'ecriture et de fond
mais surtout , de pouvoir modifier ces couleurs Apres coup ....
franchement je ne sais meme pas si on peut colorer les boutons apres creation ...(sans prise de tete je veux dire ) :)

aussi je voulais ajouter que j'utilise mon propre éditeur PureBasic (EPB) , donc je n'ai pas les memes outils que toi :)
(mais j'en ai d'autres que l'editeur Officiel ne proposais pas, et d'autres qu'il ne propose toujours pas )
non ! je n’échangerai pas mon baril de lessive , je garde le miens :lol:
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: un Agenda..

Message par falsam »

Quelques tests plus tard : C'est vraiment bien.

Un bouton pour ajouter une heure automatiquement. Ça peut être intéressant quand on reçoit un appel téléphonique.

Et j'ai modifié tes procédures de sauvegardes et de chargement d'agenda.

Code : Tout sélectionner

Procedure Charge_list(Annee.s)
  Name_file.s="Agenda_"+Annee.s+".json"            
  If FileSize(GetCurrentDirectory()+Name_file.s)>-1
    LoadJSON(0, Name_file)
    ExtractJSONList(JSONValue(0), jour())
  EndIf
EndProcedure
;
Procedure Sauvegarde_list()
  Annee.s=GetGadgetText(#titre_annee)
  Name_file.s="Agenda_"+Annee.s+".json"  
  If CreateJSON(0)
    InsertJSONList(JSONValue(0), jour())
  EndIf
  SaveJSON(0, Name_file)  
EndProcedure
C'est plus court et surtout pas besoin de se soucier du changement de la structure "jour"

Merci encore
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: un Agenda..

Message par Zorro »

arf , je ne connais pas le format json .. :)

ya pas besoin de séparateur ??

mon systeme ne sauvais QUE les jours avec un text ...
ça fais pareil ?? ou ça sauve tout meme les jours vide ?
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: un Agenda..

Message par falsam »

Zorro a écrit :ya pas besoin de séparateur ??
Tu n'as rien à faire.

Si tu regardes bien la procédure Sauvegarde_list()
- InsertJSONList(JSONValue(0), jour()) Insère la totalité de ta liste Jour() dans un objet JSON.
- SaveJSON(0, Name_file) Sauvegarde cet objet dans un fichier texte.
falsam a écrit :mon systeme ne sauvais QUE les jours avec un text ...
ça fais pareil ?? ou ça sauve tout meme les jours vide ?
Je pense que tu as deviné la réponse.
La totalité des jours vides ne fait que 17 Ko ce qui est insignifiant.

:idea: J'insiste que l'avantage d'un tel system est que si tu modifie la structure de ta liste, tu n'auras pas besoin de retoucher ta procédure de sauvegarde.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: un Agenda..

Message par Zorro »

Merci, je vais me pencher sur le format json ...

j'ai mis pas mal de temps a utiliser la librairie "Preference" , depuis des que je veux faire un truc évolué, je passe par elle
Pareil avec les Structures ... (avant je n'utilisais que les Tableaux ), je ne pourrai plus m'en passer maintenant

donc, je comprends vite, mais faut m'expliquer lentement :lol:

vais voir ça ....
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: un Agenda..

Message par Zorro »

Petit retour a l'Agenda (Voir le premier Code du Topic )

j'ai adopté les procedure de chargement/Sauvegarde de Falsam (Format Json )

j'ai ajouté un systeme d'alerte voici comment ça marche :

comme avant on peut entrer du texte (n'oubliez pas de sélectionner le bon jour AVANT d'ecrire le texte )
ce Texte est conservé, ça peut donc servir de Journal Intime ou d'Agenda Simple , pense bete , etc .... )

pour ajouter une alerte (24 Alertes possible par jour actuellement ) voici comment procéder

dans l'editeur là ou l'on écris nos messages , il suffit de mettre une heure de déclenchement de l'Alerte entre "$"
et le message qui va avec entre "[]"

voici quelques exemples d'alerte qui marche :
pour une alerte a 22h00
$22:00$
[le message qui va s'afficher ]


mais on peut aussi bien sur le mettre sur une seule ligne comme ça
$22:59$ [message a afficher]
on peut aussi ecrire le message sur plusieurs lignes
$22:59$ [message a afficher
sur plusieurs
Lignes]
plusieurs alertes pour le meme jour

$23:44$ [message de 23:44 ]

on peut ecrire du text au milieu

$23:45$ [message de 23:45 ]

on peut meme faire ainsi :

$23:46$ <-- ceci indique l'heure de l'alerte

du text normal en plein miilieu d'une alerte
ce text n'aparaitra pas dans le message

[message de 23:46 ] <-- ceci est le message qui apparaitra a 23:46

simple non ?? :)


[reedit]
je viens d'ajouter la présélection du jour au démarrage du prg ..


lorsqu'on a répondu a une alerte en refermant la boite d'alerte , celle ci se désactive
meme si on edite son heure !!! , une alerte passé est donc désactivée ..

si on veux remettre a zero les Flags et prendre en compte une modification d'une ancienne Alerte désactivée
il faut simplement apres la modification cliquer sur le bouton du jour concerné ...
cela aura pour effet de remettre les flags a zero ..et de réactiver les Alertes meme anciennes ..
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: un Agenda..

Message par Zorro »

Modification du Premier Listing de ce topic
[Reedit]
Re-modification du code , j'avais oublié de faire une sauvegarde a chaque "reduction" en systray ....

j'ai ajouté la mise en Systray de l'agenda , puisque celui ci a vocation de tourner en arriere plan
a cause des alarmes :)

donc maintenant, il se met en systray , si on click sur le systray, ça fait alternativement afficher/cacher la fenetre du programme

un click droit que l'icone du prg fait apparaitre un petit menu pour vraiment quitter le prg (mais dans ce cas, plus d'alarme possible )

il vous faudra mettre l'agenda compilé dans votre menu de demarrage automatique , pour que celui ci démarre avec le systeme

il vous faudra une icone pour le Systray , la voici :
http://michel.dobro.free.fr/Purebasic/A ... agenda.ico
Image

bon ça commence a etre utilisable :)


Ps : sous windows 10 pour mettre votre prg en demarrage automatique voici la methode :
le menu "demarrage" ayant disparu , voici comme faire

vous tapez dans le champ de recherche cortana "executer"
une petite fenetre va s'ouvrir
dedans tapez "shell:startup"

la fenetre des prg qui démarre automatiquement avec le systeme va s'ouvrir ,
c'est la dedans que vous devez mette un raccourci de votre programme (en l'occurence l'agenda )
vous fermer, voila, au prochain redémarrage de votre systeme , l'agenda démarrera tout seul :)
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: un Agenda..

Message par Kwai chang caine »

Ca prend forme en effet :D
Ce qui ferait plus pro, c'est que la fenêtre n’apparaisse pas subrepticement au lancement, j'ai essayé avec #PB_Window_Invisible dans la fenetre et HideWindow (#False) à la fin, mais on la voit encore un tout petit peu..
Merci pour le partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: un Agenda..

Message par Zorro »

je pense que c'est du a Windows ça
car tout les prg d'origine Purebasic que j'ai, qui se lancent au demarrage
ont tendance a s'afficher le temps de l'ouverture de la fenetre

j'ai pas trop reflechi au truc ...en fait :)

ps: a suivre , je pense faire une nouvelle couleur
pour les evenements passés (qui ne sont plus dans le futur ...:lol: )

au lieu qu'ils restent jaune comme maintenant, les jours pourraient passer en violet par exemple
puisqu'ils sont passés...
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Marc56
Messages : 2145
Inscription : sam. 08/févr./2014 15:19

Re: un Agenda..

Message par Marc56 »

:idea: (Propositions d'améliorations)

Pourquoi ne pas remplacer la procédure pleine d'API removefromtaskbar() par l'option | #PB_Window_Tool ?

#PB_Window_Tool : Crée une fenêtre avec une barre de titre plus fine, et non visible dans la barre des tâches.

Et aussi: rendre les exemples de codes immédiatement testables en utilisant les ressources graphiques livrées avec PB
(peu importe l'icône, chacun peut ensuite personnaliser)

Code : Tout sélectionner

;IconName$ = "agenda.ico" ; <-- indiquez ici un icone pour le prg dans le Systray
; (ou utilisez les icônes fournies avec PB)
IconName$ = #PB_Compiler_Home + "\Examples\Sources\Data\CdPlayer.ico"


; | #PB_Window_Tool) fait disparaitre la fenêtre de la barre de tache. Oui, ça marche aussi avec une fenêtre principale
If OpenWindow(#win, 0, 0, 1024, 768, "Agenda_Projet",  #PB_Window_ScreenCentered | #PB_Window_Tool)
SetCurrentDirectory(GetTemporaryDirectory()) empêcherait que le programme échoue s'il n'a pas été enregistré avant.
(Sinon PB tente de créer dans ProgramFile) OpenFile(#file,GetCurrentDirectory()+"Agenda.ini")

Faire comme les exemples fournis avec la doc de PB: Tout fonctionne du premier coup sans ajout ni modification.

:wink:
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: un Agenda..

Message par falsam »

@Marc : Ne stresse pas notre Zorro. C'est un vieux de la vieille sur ce forum (Plus de 15 000 messages sous des alias divers). C'est aussi notre papa à tous qui nous a accompagné dans la découverte de PureBasic. Et comme pas mal de papa il n'est plus au top de la technologie et la conséquence et que les enfants souvent dépassent leurs parents. Il vient juste d'assimiler les fonctionnalités de JSON, faut qu'il se repose avant de se lancer dans les options des fenêtres :mrgreen:

Ceci dit ce n'est pas le pire. Il y en a un autre ici (SPH) qui pratique PureBasic depuis 2005 et qui depuis peut commence seulement à aborder les gadgets. Peut être que bientôt il abordera les procédures. j'ai pu lire certains de ses codes. A lire c'est une tuerie pour le cerveau : Codage top-down sans une seule procédure et plein de goto.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre