un Agenda..

Programmation d'applications complexes
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 »

T'as raison ça doit être une maladie de vieux je connaissais pas non plus le #PB_Window_Tool :oops:
Putain qu'est ce qu'on apprend en ce moment sur le FR 8O
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 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 :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
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: un Agenda..

Message par Zorro »

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 :)
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 »

Arf !
correction d'un petit bug !

pour la couleur violette, j'avais oublié de tenir compte de l'année !!
maintenant ça marche :)
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 »

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 )
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 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 :

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())	
; par :

Code : Tout sélectionner

ExtractJSONList(JSONValue(0), jour_ancien())	 
3- ajoutez cette procedure en fin de code , et n'oubliez pas de la declarer au debut du code

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
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

Code : Tout sélectionner

ExtractJSONList(JSONValue(0), jour_ancien())
modifiez en :

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 :)
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 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
$8:00$
par
-8:00-
et remplacement du message de l'alarme
[message de l'alarme]
par
(message de l'alarme )
du coup ça désactive l'alarme qui ne nous embêtera plus ...
(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
$8:00$ [voici une alarme avec son message qui se declenche a 8 heures]
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
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 ....
:)
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
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: un Agenda..

Message par JohnJohnsonSHERMAN »

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 :)
"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
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: un Agenda..

Message par Zorro »

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 !
Je ne pensais meme pas que ça marcherai sous Linux 8O ...
bon , bonne nouvelle :)
- 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)"
pourtant sous windows 10 ça marche bien .... comprends pas 8O
-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 :)
ça c'est pas vraiment un probleme :)
je corrige mon code tout de suite :)
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 »

voila , Ligne 126 j'ai ajouté

Code : Tout sélectionner

Global Hauteur_fenetre=600 ; Minimum 400 ;o)
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 :lol:

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 :)
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
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: un Agenda..

Message par JohnJohnsonSHERMAN »

Merci Zorro ! :)

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
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: un Agenda..

Message par Micoute »

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 !
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: un Agenda..

Message par Marc56 »

Utilises DesktopHeight(0) comme ça ça passera partout :wink:

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é)
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: un Agenda..

Message par Zorro »

Marc56 a écrit :Utilises DesktopHeight(0) comme ça ça passera partout :wink:
non, car je n'ai jamais voulu que ce soit en plein ecran :)
sinon, tu penses bien que j'aurai utilisé la lib Desktop()
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 »

Merci :)
Dernière modification par Zorro le jeu. 21/sept./2017 10:00, 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"
Répondre