Sam 21/07/2012 - Actualités

Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Sam 21/07/2012 - Actualités

Message non lu par Xavier »

Agenda


L'Agenda sera un nouvel outil qui regroupera les fonctions des outils Calendrier, Tâches et Alarmes de XT3, à la façon des autres outils du marché.

Les études et discussions menées il y a quelques mois ont abouti au design suivant :
- Partie haute : calendrier vertical dont le nombre de semaines dépend de la largeur de la fenêtre.
- Partie basse : arbre de dossier (cachable), journal et liste de tâches (cachable).

Le journal affichera sous forme d'un ruban infini les objets suivants :
- Dans le passé : tâches réalisées et évènements passés.
- Dans le futur : évènements à venir.
Le journal et le calendrier seront probabalement connectés et se mettront à jour mutuellement.

La liste des tâches à droite contiendra les tâches qui ne sont pas liées à une date, à la façon d'une "To do list". Les marquer comme faites les incrira à priori dans le journal. Un évènement pourra être une réunion, un rendez-vous ou une tâche à exécuter pour une date précise.

La gestion des congès a été fondue dans une gestion de périodes plus générique. Il sera possible de définir un certain nombre de types de périodes. Elles auront un code de couleur comme dans XT3, mais un compteur optionnel permettra d'en gérer le stock. Par exemple il sera possible de définir ces types :
- Congès scolaire : rouge, sans compteur
- CP : vert, avec compteur
- RTT : vert, avec compteur
L'affichage du code couleur dans le calendrier et le journal permettra de distinguer les jours de repos en vert (qu'ils soient des CP ou des RTT) et les vacances des enfants en rouge. Le compteur permettra de connaitre la consommation des CP ou de RTT, en supposant que de nouvelles périodes sont créées chaque année.

L'affichage des codes des périodes dans le calendrier nécessitera l'utilisation de petites icônes. Le premier prototype est basé sur l'utilisation de petits ListViews dépourvus de bord et assemblés côte à côte, un pour chaque semaine. Le résultat permettrait d'afficher une grille de dates avec la possibilité d'un icône à gauche de chaque date :
Agenda.png
(Illustration des petits ListViews assemblés pour construire le calendrier.)

On le voit, la gestion de la couleur de fond se faisant par composant, il faudrait positionner deux ListViews aux couleurs de fond différentes pour chaque semaine à cheval sur deux mois.

En extrapolant il faudrait même avoir un mini ListView par date, ce qui ne serait pas raisonnable mais demande l'étude d'un autre prototype basé sur une sorte de mini composant "fait maison" comprenant un rectangle d'une couleur définissable, un emplacement pour une ou des images et une zone de texte.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Sam 21/07/2012 - Actualités

Message non lu par Xavier »

Calendrier


L'idée d'utiliser des ListViews (afin d'avoir la possibilité d'afficher des icônes) est abandonnée.

Le système des cases, qui existe depuis XT100 (!) convient en fait très bien, car il permet d'associer une couleur de fond à chaque Panel. L'amélioration par rapport à XT3 et l'ajout d'un composant Image.

Les premiers tests ont été faits en ajoutant une image transparente de 16 x 36 (taille de la cellule), et en alignant la Caption des Panels à droite avec marge de 3 pixels :
Calendrier.png
Il y au moins trois possibilité pour gérer les icônes multiples dans une cellule :
  • Avoir autant d'images que de combinaisons d'icônes possibles. (A utiliser en dernier recours.)
  • Arriver à superposer plusieurs images. Soit en superposant les composants Image, soit en ayant un seul composant qui afficherait une image "reconstruite" à partir de plusieurs.
  • Positionner plusieurs minuscules composants Image, un pour chaque image possible, et les afficher/cacher selon le besoin.

On atteint ici les limites du design de la fenêtre, la suite va se faire via du code.
La solution qui sera retenue devra être simple à implémenter et à maintenir mais ne pas ralentir l'application.
Pour le moment, la préférée est celle de l'image reconstruite dynamiquement par empilement de plusieurs couches transparentes, mais il va falloir voir la faisabilité.

En tout cas, la solution technique aux besoins graphiques du calendrier est sur la bonne piste, et c'est l'excellente nouvelle du jour ! :D
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Sam 21/07/2012 - Actualités

Message non lu par Xavier »

The X-Tools 1.0.0


Un petit air familier qui n'est donc sans doute pas prêt de disparaitre... :shock:
XT100.png
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Denis
Messages : 180
Enregistré le : jeu. 23 juin 2011 09:21

Re: Sam 21/07/2012 - Actualités

Message non lu par Denis »

yes, jolie étude !
Et bientot 10 ans depuis XT1 !!

Sinon, depuis les Panels, tu as peut-être accès à leur TCanvas, auquel cas tu peux directement dessiner dessus.

Ici ils expliquent comment surcharger TPanel facilement pour rendre le Canvas public:
http://www.delphifr.com/forum/sujet-CAN ... 09759.aspx

Ensuite, au lieu de faire comme eux un Gradient, il suffit que dans la surcharge de paint(), tu dessines un trait d'une couleur ou un point ou ce que tu veux, en utilisant:
Canvas.Pixels[x,y] := clBlack; //Pixel par pixel, un peu lourd...
Soit avec les services de dessin:
Canvas.Brush.Color := Color;
Canvas.Pen.Color := Color;
Canvas.Pen.width := MyWidth;
Canvas.FillRect(Rect(Pos.X, Pos.Y, Pos.X+ ACanvas.Pen.Width, Pos.Y + ACanvas.Pen.Width));
LineTo, etc....

@+
Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Re: Sam 21/07/2012 - Actualités

Message non lu par Xavier »

DMo a écrit : ...
Ensuite, au lieu de faire comme eux un Gradient, il suffit que dans la surcharge de paint(), tu dessines un trait d'une couleur ou un point ou ce que tu veux, en utilisant:
Canvas.Pixels[x,y] := clBlack; //Pixel par pixel, un peu lourd...
Soit avec les services de dessin:
Canvas.Brush.Color := Color;
Canvas.Pen.Color := Color;
Canvas.Pen.width := MyWidth;
Canvas.FillRect(Rect(Pos.X, Pos.Y, Pos.X+ ACanvas.Pen.Width, Pos.Y + ACanvas.Pen.Width));
...
Oui, tu le sais, j'ai toujours refusé l'idée de dessiner car je pensais devoir afficher des icônes, mais puisque ce sera à priori des rectancles ou des cercles de couleur, les créer via code est clairement la meilleure solution, ça économisera des ressources systèmes contrairement aux dizaines (centaines ?) d'objet TImage de mes options. :?

Et au pire, si vraiment besoin de dessiner des icônes (trop complexes à dessiner pixel par pixel) je pourrai les ajouter par la suite en tant que TImage.
Répondre