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.
Sam 14/01/2012 - Actualités
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Sam 14/01/2012 - Actualités
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 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 : Les barres d'outils resteront donc artisanales (un Panel avec des SpeedButtons définis manuellement.)
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 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 : 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.
-
- Messages : 180
- Enregistré le : jeu. 23 juin 2011 09:21
Re: Sam 14/01/2012 - Actualités
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...
En revanche, je crois me souvenir d'un bug avec le menu contextuel... que j'avais fini par remplacer par un composant tiers...
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Re: Sam 14/01/2012 - Actualités
Damned, dès que quelque chose est pratique en Delphi, c'est buggué.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...
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.
Ca sent la boucle de reset des Captions des SpeedButtons dans le OnCreate de la Form... et tant pis pour le code propre.
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Re: Sam 14/01/2012 - Actualités
Ca fera juste une ligne pour appeler ce service :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.
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;
-
- Messages : 180
- Enregistré le : jeu. 23 juin 2011 09:21
Re: Sam 14/01/2012 - Actualités
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
Vive le forum, ca remplace la messagerie instantanée