Sam 14/01/2012 - Actualités

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

Sam 14/01/2012 - Actualités

Message non lu par Xavier »

Sam 14/01/2012 - Actualités


14:30

La session de refactoring des services dédiés aux fenêtres des outils est achevée.
L'utilisation de Variants dans les services de lecture/écriture des Properties des Data a dû être revue à la baisse, cela a entrainé le passage en type Overload de certaines méthodes.

Le travail reprend maintenant sur l'outil Contacts et notamment sur sa ToolBar désormais unique et commune aux dossiers et données.
Afin de gérer la multitude de commandes exécutables par bouton, menu contextuel et raccourci-clavier, l'implémentation d'ActionLists va être essayée. Jusqu'à présent, les actions étaient associées aux boutons, et les raccourcis-claviers simulaient un clic sur ces boutons. Avec l'arrivée des menus contextuels, il s'agit de travailler sur des nouvelles bases plus propres et surtout plus évolutives.
Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Sam 14/01/2012 - Actualités

Message non lu par Xavier »

16:10

Adoptées !

Ces ActionLists sont vraiment pratiques, et restent compatibles avec les méthodes "centralisées" de l'application qui visent à réduire le code source.
Le nouveau modèle est donc :
- Création d'une ActionList par onglet. (On verra plus tard si les boutons et menus cachés des fenêtres en méritent une.)
- Création d'une ImageList et association à l'ActionList.
- Définition d'actions génériques (par exemple "Create").
- Association des actions aux boutons et items de menus.
- Définition d'une unique méthode "Manage" (système actuel).
- Association de l'unique méthode de gestion à toutes les actions, puis analyse par composant. C'est ici que l'action "Create" va créer un dossier ou une donnée en fonction du composant actif.

Ce système de méthode unique "Manage" est utilisé depuis des années, il permet d'avoir une méthode de gestion par onglet plutôt que par composants :shock: et permet ainsi d'éviter la duplication du code d'initialisation des variables.

Il faudra quand même gérer les raccourcis-claviers via une méthode spécifique, mais ils appeleront désormais les actions.

Une tentative d'utiliser les ToolBar a été tentée mais a été vite rejetée, les boutons étant arrondis sous Windows Seven :
TToolBar_Seven.png
Les barres d'outils resteront donc artisanales (un Panel avec des SpeedButtons définis manuellement.)
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 14/01/2012 - Actualités

Message non lu par Denis »

oui, très pratiques en effet. Il suffit par exemple de rendre un action "disabled" et toutes ses utilsiatiosn dans l'IHM sont grisées d'un seul coup (menu, menu contextuel, boutons;..)
En revanche, je crois me souvenir d'un bug avec le menu contextuel... que j'avais fini par remplacer par un composant tiers...
Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Re: Sam 14/01/2012 - Actualités

Message non lu par Xavier »

DMo a écrit :oui, très pratiques en effet. Il suffit par exemple de rendre un action "disabled" et toutes ses utilsiatiosn dans l'IHM sont grisées d'un seul coup (menu, menu contextuel, boutons;..)
En revanche, je crois me souvenir d'un bug avec le menu contextuel... que j'avais fini par remplacer par un composant tiers...
Damned, dès que quelque chose est pratique en Delphi, c'est buggué. :cry:

Je mets les Captions des SpeedButton à '' au design, mais Delphi me mets les Caption des Actions au runtime, du coup mes zolis boutons affichent le milieu du texte au lieu de l'icône. Et si j'enlève les Captions des Actions, ce sont les Items du PopupMenu qui sont vides. :evil:

Ca sent la boucle de reset des Captions des SpeedButtons dans le OnCreate de la Form... et tant pis pour le code propre.
Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Re: Sam 14/01/2012 - Actualités

Message non lu par Xavier »

XMo a écrit : ...
Ca sent la boucle de reset des Captions des SpeedButtons dans le OnCreate de la Form... et tant pis pour le code propre.
Ca fera juste une ligne pour appeler ce service :

Code : Tout sélectionner

//------------------------------------------------------------------------------
// FixButtons : enlève les Captions des SpeedButtons
// 14/01/2012 - XT400
//------------------------------------------------------------------------------
procedure FixButtons(Panel: TPanel);
var
	Control_Count: Byte;
	Control_Index: Byte;
	Control: TControl;
begin
	Control_Count := Panel.ControlCount;
	for	Control_Index := 0 to (Control_Count - 1)
	do	begin
		Control := Panel.Controls[Control_Index];
		if	Control is TSpeedButton
		then	TSpeedButton(Control).Caption := '';
		end;
end;

Denis
Messages : 180
Enregistré le : jeu. 23 juin 2011 09:21

Re: Sam 14/01/2012 - Actualités

Message non lu par Denis »

Tu n'as pas - plus simplement - une propriété des boutons à modifier pour qu'ils n’affichent que les icônes???

Vive le forum, ca remplace la messagerie instantanée ;-)
Répondre