un Agenda..
- Kwai chang caine
- Messages : 6962
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: un Agenda..
T'as raison ça doit être une maladie de vieux je connaissais pas non plus le #PB_Window_Tool
Putain qu'est ce qu'on apprend en ce moment sur le FR
Putain qu'est ce qu'on apprend en ce moment sur le FR
Re: un Agenda..
je connais tres bien le flag #PB_Window_Tool
mais j'ai l'habitude d'utiliser certaines API que j'ai en stock
quelques fois , il y a des différences avec le Purebasic "Moderne"
l'avantage de l'aPi c'est qu'elle peut virer de la barre des taches n'importe quelle application , pas seulement le type "Tool"
j'ai toutefois modifié mon code dans ton sens , en utilisant #PB_Window_Tool
en fait pour ce cas, effectivement, ça raccourci le code
par contre, a propos de l'icone ,je fourni l'icone , faut pas déconner, je ne vois pas de raisons de mettre un icone Bidon
meme s'il est fourni avec le systeme
je code d'abords pour moi-meme , donc j'ai donné l'icone qui va bien , et que j'ai choisie
Apres ,chacun fait ce qu'il veux chez lui ....
@falsam : c'est vrais que je ne m'arrange pas avec le temps
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: un Agenda..
modification du code
il dessine maintenant sur fond violet, les jours qui contiennent un message
mais dont la date est passé (par rapport a aujourd'hui )
les dates contenant un message mais etant dans le futur, restent en Jaune
le Orange c'est pour la date d'aujourdh'ui si il contient un message
le Bleu c'est la date d'aujourd'hui si il ne contient rien
le vert, c'est le jour selectionné (pour lire ou ecrire dedans par exemple )
bien sur c'est un code de couleur, ça se modifie dans le code
il dessine maintenant sur fond violet, les jours qui contiennent un message
mais dont la date est passé (par rapport a aujourd'hui )
les dates contenant un message mais etant dans le futur, restent en Jaune
le Orange c'est pour la date d'aujourdh'ui si il contient un message
le Bleu c'est la date d'aujourd'hui si il ne contient rien
le vert, c'est le jour selectionné (pour lire ou ecrire dedans par exemple )
bien sur c'est un code de couleur, ça se modifie dans le code
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: un Agenda..
Arf !
correction d'un petit bug !
pour la couleur violette, j'avais oublié de tenir compte de l'année !!
maintenant ça marche
correction d'un petit bug !
pour la couleur violette, j'avais oublié de tenir compte de l'année !!
maintenant ça marche
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: un Agenda..
correction de la fonte concernant l'année
et passage de l'interface en mode "sombre" (suite a la conversation récente sur la lumiere et nos yeux )
et passage de l'interface en mode "sombre" (suite a la conversation récente sur la lumiere et nos yeux )
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: un Agenda..
Modification du code Premiere page
ajout de l'affichage du jour selectionné
au dessus de l'editeur ..
ajout de 2 boutons qui permettent de pouvoir ecrire plusieurs page par jour
dix pages pour etre exacte
le probleme de cette modification , c'est qu'elle rend incompatible les fichiers Json, si vous aviez deja utilisé l'Agenda
mais pas de panique, voici la solution pour rendre compatible les anciens fichier avec le nouveau format :
NE CONCERNE QUE CEUX QUI VEULENT RECUPERER LEUR ANCIENNES DONNé
pour les nouveaux utilisateur,vous n'avez donc rien a faire !!
donc pour les anciens utilisateurs qui veulent rendre compatible les données deja entrée
il faut :
1- en haut du code
ajoutez cette structure :
2- dans la Procedure Charge_list()
rempacez la ligne
; par :
3- ajoutez cette procedure en fin de code , et n'oubliez pas de la declarer au debut du code
4- verifiez que l'agenda ne tourne pas actuellement en memoire (menu contextuel "Quitter" )
lancez l'agenda comprenant ces modifications avec l'editeur Purebasic
il va charger vos anciennes données....
; changez les années avec la fleches qui remonte les années (VERS LE PASSé UNIQUEMENT !!!!! )
sur la periode que vous voulez rendre compatible , si comme moi vous aviez rempli l'agenda avec des actions passé ...
cela va en fait sauvegarder les données au nouveau format......
une fois fait : quittez le prg par le débugger !!! (quittez sauvagement , pas en passant par le menu contextuel )
dans l'editeur remodifiez les lignes dans la procedure Charge_list()
donc apres ça, l'agenda va charger les données au nouveau format
de
modifiez en :
voila, vous pouvez virer la procedure conversion()
et sa structure associé "jour_ancien" ......
en principe si vous compilez l'agenda , ou si vous le lancez par l'editeur
les données seront bien présentent dedans
ajout de l'affichage du jour selectionné
au dessus de l'editeur ..
ajout de 2 boutons qui permettent de pouvoir ecrire plusieurs page par jour
dix pages pour etre exacte
le probleme de cette modification , c'est qu'elle rend incompatible les fichiers Json, si vous aviez deja utilisé l'Agenda
mais pas de panique, voici la solution pour rendre compatible les anciens fichier avec le nouveau format :
NE CONCERNE QUE CEUX QUI VEULENT RECUPERER LEUR ANCIENNES DONNé
pour les nouveaux utilisateur,vous n'avez donc rien a faire !!
donc pour les anciens utilisateurs qui veulent rendre compatible les données deja entrée
il faut :
1- en haut du code
ajoutez cette structure :
Code : Tout sélectionner
;; ajouter cette structure
Structure jour_ancien
Id.i ; numero du gadget
Date_text.s ; la date lié au gadget
Text.s ; le text associé a ce jour
Array Alarme.s(24) ; 24 Alarmes possible par jours
Array Message_alarme.s(24)
Array Action.b(24) ; active desactive une alarme
EndStructure
Global Newlist jour_ancien.jour_ancien()
2- dans la Procedure Charge_list()
rempacez la ligne
Code : Tout sélectionner
ExtractJSONList(JSONValue(0), jour())
Code : Tout sélectionner
ExtractJSONList(JSONValue(0), jour_ancien())
Code : Tout sélectionner
Procedure conversion()
Foreach jour_ancien() ; ancienne list
SelectElement(jour(),compteur_list) ; on selectionne l'element de la nouvelle liste
jour()\Id.i= jour_ancien()\Id.i; numero du gadget
jour()\Date_text.s=jour_ancien()\ Date_text.s; la date lié au gadget
jour()\text.s[0]=""
jour()\text.s[1]=jour_ancien()\Text.s ; pour lui attribuer la valeur text
For i=2 to 10
jour()\text.s[i]=""
Next i
For i=0 to 24
jour()\Alarme.s(i)= jour_ancien()\Alarme.s(i); 24 Alarmes possible par jours
jour()\Message_alarme.s(i)=jour_ancien()\Message_alarme.s(i)
jour()\Action.b(i)=jour_ancien()\Action.b(i) ; active desactive une alarme
NExt i
compteur_list=compteur_list+1
Next
EndProcedure
lancez l'agenda comprenant ces modifications avec l'editeur Purebasic
il va charger vos anciennes données....
; changez les années avec la fleches qui remonte les années (VERS LE PASSé UNIQUEMENT !!!!! )
sur la periode que vous voulez rendre compatible , si comme moi vous aviez rempli l'agenda avec des actions passé ...
cela va en fait sauvegarder les données au nouveau format......
une fois fait : quittez le prg par le débugger !!! (quittez sauvagement , pas en passant par le menu contextuel )
dans l'editeur remodifiez les lignes dans la procedure Charge_list()
donc apres ça, l'agenda va charger les données au nouveau format
de
Code : Tout sélectionner
ExtractJSONList(JSONValue(0), jour_ancien())
Code : Tout sélectionner
ExtractJSONList(JSONValue(0), jour())
voila, vous pouvez virer la procedure conversion()
et sa structure associé "jour_ancien" ......
en principe si vous compilez l'agenda , ou si vous le lancez par l'editeur
les données seront bien présentent dedans
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: un Agenda..
Modification du code
je me suis aperçut, que si le prg n'etait pas lancé alors qu'une alarme avait eu lieu
genre vous avez une alarme a 8h00 , et vous lancez l'ordi a 08h05 ..
l'alarme ne se declenchait pas , puisque le prg considérait qu'elle etait passée !
j'ai donc fait en sorte qu'une alarme, tant qu'elle n'a pas été validé (pas de réponse par le messageRequester() )
ben l'alarme a toujours cours !!
du coup même si vous lancer votre ordinateur plus tard dans la journée , l'alarme va apparaitre ..
a la confirmation , le texte dans l’éditeur sera changé , pour désactiver l'alarme
replacement des
(vous pouvez bien sur faire ces modif a la main pour désactiver une alarme
par contre une alarme non confirmé la veille , c'est foutu , elle ne se manifestera pas le lendemain ...
vous aurez compris que les caracteres "$" et "[]" sont reservé uniquement a l'usage d'une alarme ...
vous pouvez planter le prg en plaçant des "$" n'importe ou ....
rappel , on pose une alarme de cette façon
dans l'editeur au jour choisi , dans l'une des 10 pages de la journée
pour plusieurs alarmes, il suffit de faire
je me suis aperçut, que si le prg n'etait pas lancé alors qu'une alarme avait eu lieu
genre vous avez une alarme a 8h00 , et vous lancez l'ordi a 08h05 ..
l'alarme ne se declenchait pas , puisque le prg considérait qu'elle etait passée !
j'ai donc fait en sorte qu'une alarme, tant qu'elle n'a pas été validé (pas de réponse par le messageRequester() )
ben l'alarme a toujours cours !!
du coup même si vous lancer votre ordinateur plus tard dans la journée , l'alarme va apparaitre ..
a la confirmation , le texte dans l’éditeur sera changé , pour désactiver l'alarme
replacement des
par$8:00$
et remplacement du message de l'alarme-8:00-
par[message de l'alarme]
du coup ça désactive l'alarme qui ne nous embêtera plus ...(message de l'alarme )
(vous pouvez bien sur faire ces modif a la main pour désactiver une alarme
par contre une alarme non confirmé la veille , c'est foutu , elle ne se manifestera pas le lendemain ...
vous aurez compris que les caracteres "$" et "[]" sont reservé uniquement a l'usage d'une alarme ...
vous pouvez planter le prg en plaçant des "$" n'importe ou ....
rappel , on pose une alarme de cette façon
dans l'editeur au jour choisi , dans l'une des 10 pages de la journée
elle peut etre de la forme$8:00$ [voici une alarme avec son message qui se declenche a 8 heures]
ou meme :$8:00$
[voici une alarme avec son message qui se declenche a 8 heures]
on peut mettre plusieurs alarme (24 Max par jour) , et sur les 10 pages que compose une journée$8:00$
[voici
une alarme
avec son message
qui se declenche a 8 heures]
pour plusieurs alarmes, il suffit de faire
$8:00$ [la premiere alarme qui se declenche a 8 heures]
on peut ecrire du text au millieu
$9:00$ [la deuxieme alarme qui se declenche a 9 heures] ; Etc etc ....
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
- JohnJohnsonSHERMAN
- Messages : 648
- Inscription : dim. 13/déc./2015 11:05
- Localisation : Allez, cherche...
- Contact :
Re: un Agenda..
J'ai testé sous KDE Plasma (environnement de bureau linux), avec le théme sombre, et ton application s'intégre super bien J'adore !
Pr contre il y a deux petits soucis :
- Au démarrage la fenêtre disparait, et je ne sais pas comment la faire revenir... (cliquer sur l'icône du systray ne marche pas) J'ai donc commenté la ligne "Minimize(State)"
-Pour un petit écran (ordi portable) la fenêtre est trop haute et le bas n'est pas visible, dommage. Enfin il ne me manque pas grand chose.
N'empêche, joli boulot ! Merci
Pr contre il y a deux petits soucis :
- Au démarrage la fenêtre disparait, et je ne sais pas comment la faire revenir... (cliquer sur l'icône du systray ne marche pas) J'ai donc commenté la ligne "Minimize(State)"
-Pour un petit écran (ordi portable) la fenêtre est trop haute et le bas n'est pas visible, dommage. Enfin il ne me manque pas grand chose.
N'empêche, joli boulot ! Merci
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
- Windows 10 x64 - PB 5.61 x64
- Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Re: un Agenda..
Je ne pensais meme pas que ça marcherai sous Linux ...JohnJohnsonSHERMAN a écrit :J'ai testé sous KDE Plasma (environnement de bureau linux), avec le théme sombre, et ton application s'intégre super bien J'adore !
bon , bonne nouvelle
pourtant sous windows 10 ça marche bien .... comprends pas- Au démarrage la fenêtre disparait, et je ne sais pas comment la faire revenir... (cliquer sur l'icône du systray ne marche pas) J'ai donc commenté la ligne "Minimize(State)"
ça c'est pas vraiment un probleme-Pour un petit écran (ordi portable) la fenêtre est trop haute et le bas n'est pas visible, dommage. Enfin il ne me manque pas grand chose.
N'empêche, joli boulot ! Merci
je corrige mon code tout de suite
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: un Agenda..
voila , Ligne 126 j'ai ajouté
normalement en hauteur ça devrai le faire
je n'ai pas ajouté de reglage pour la largeur ....
mais bon c'est du 1024 ..... en principe ça passe quasi partout non ?
la par defaut c'est 1024x600 c'est la resolution d'un NetBook type Samsung NC10
maintenant je me sert de mon agenda pour plein de trucs
genre pour ne pas oublier un film qui passe a tel ou tel heure
pour un rendez vous suite a passage d'un agent EDF pour verifier le compteur
pour juste noter un truc qui m'arrive tel ou tel jour (un peut journal de bord du capitaine Kirk )
bref , un journal intime
c'est pratique ce genre de prg , je n'etais jamais content de ceux qu'on trouve sur les tablettes
ou sur l'ordi , toujours bien trop compliqué a mettre en oeuvre
je voulais un code de couleur pour les evenements, futur,passé ou actuel
tout est personnalisable puisqu'on a le source
Code : Tout sélectionner
Global Hauteur_fenetre=600 ; Minimum 400 ;o)
je n'ai pas ajouté de reglage pour la largeur ....
mais bon c'est du 1024 ..... en principe ça passe quasi partout non ?
la par defaut c'est 1024x600 c'est la resolution d'un NetBook type Samsung NC10
maintenant je me sert de mon agenda pour plein de trucs
genre pour ne pas oublier un film qui passe a tel ou tel heure
pour un rendez vous suite a passage d'un agent EDF pour verifier le compteur
pour juste noter un truc qui m'arrive tel ou tel jour (un peut journal de bord du capitaine Kirk )
bref , un journal intime
c'est pratique ce genre de prg , je n'etais jamais content de ceux qu'on trouve sur les tablettes
ou sur l'ordi , toujours bien trop compliqué a mettre en oeuvre
je voulais un code de couleur pour les evenements, futur,passé ou actuel
tout est personnalisable puisqu'on a le source
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
- JohnJohnsonSHERMAN
- Messages : 648
- Inscription : dim. 13/déc./2015 11:05
- Localisation : Allez, cherche...
- Contact :
Re: un Agenda..
Merci Zorro !
Mon écran fait 1366 x 768 donc ca va maintenant
Mon écran fait 1366 x 768 donc ca va maintenant
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
- Windows 10 x64 - PB 5.61 x64
- Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Re: un Agenda..
Et le mien fait 2560 x 1080 et son petit frère mesure 1920 x 1080, ça ne risque pas de déborder.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: un Agenda..
Utilises DesktopHeight(0) comme ça ça passera partout
Pour bien faire il faudrait soustraire la hauteur de la barre de tâche si elle est active, mais je ne sais pas comment connaitre sa hauteur (l'utilisateur peut l'avoir changé)
Pour bien faire il faudrait soustraire la hauteur de la barre de tâche si elle est active, mais je ne sais pas comment connaitre sa hauteur (l'utilisateur peut l'avoir changé)
Re: un Agenda..
non, car je n'ai jamais voulu que ce soit en plein ecranMarc56 a écrit :Utilises DesktopHeight(0) comme ça ça passera partout
sinon, tu penses bien que j'aurai utilisé la lib Desktop()
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: un Agenda..
Merci
Dernière modification par Zorro le jeu. 21/sept./2017 10:00, modifié 1 fois.
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"