Options
Le sélecteur de page des options ne sera pas un TreeView (à gauche) mais un ListView (à droite), les fonctions Expand et Collapse des TreeView n’apparaissant pas nécessaires sur un arbre de taille réduite. Les sous-branches de la liste sont obtenues par indentation des items.
Cela permettra d'afficher jusqu'à 18 pages sans avoir à scroller, ce qui sevrait être suffisant pour les options des outils.
Dim 03/03/2013 - Actualités
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Dim 03/03/2013 - Actualités
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Dim 03/03/2013 - Actualités
Pages d'options
Le module de gestion des options d'outils est prêt.
Au design, la page présente la liste et les pages numérotées pour un accès rapide : La préparation des pages n'est plus effectuée au démarrage mais lors du premier clic sur le bouton des Options. Ce n'est même pas pour optimiser l'ouverture de l'outil mais pour éviter un crash insolvable, certaines propriétés étant inaccessibles au démarrage. Cette préparation consiste donc en :
- Positionnement des onglets en haut,
- Passage en style "Flat" pour dissimuler le relief,
- Dissimulation de tous les onglets.
(Il est impossible de positionner les onglets en bas s'ils sont en mode "Flat", et ils doivent être en bas sinon il faut repositionner tous les composants des pages...) On perd une vingtaine de pixels en bas de chaque page mais on fera avec...
Cette préparation des onglets étant codée dans le service de gestion des pages, lequel est externe aux outils, il n'y aura plus à s'en soucier pour les prochains outils.
La gestion des pages ne peut pas être plus simple :C'est la seule ligne de code à ajouter à la gestion des options.
Pour simplifier encore, il a été décidé que :
- Les composants des pages ne serait pas "liés" à la bordure de droite, et leur largeur n'augmentera donc pas avec la fenêtre.
- En conséquence, les pages d'option ne contiendrait pas de GroupBox, les sous-catégorisations de faisant uniquement par des titres soulignés : Au final, l'utilisation d'onglets pour gérer des panneaux multiples ne se fera pas pour les pages "normales" des outils, car la suppression des onglets modifie la surface des panneaux. Acceptable avec les options et les règles mises en place mais ingérable avec les outils dont les composants sont positionnés au pixel près, avec des surcouches de panneaux pour gérer les spliters etc...
Il ne reste plus qu'à coder le contenu de ces pages d'options.
Le module de gestion des options d'outils est prêt.
Au design, la page présente la liste et les pages numérotées pour un accès rapide : La préparation des pages n'est plus effectuée au démarrage mais lors du premier clic sur le bouton des Options. Ce n'est même pas pour optimiser l'ouverture de l'outil mais pour éviter un crash insolvable, certaines propriétés étant inaccessibles au démarrage. Cette préparation consiste donc en :
- Positionnement des onglets en haut,
- Passage en style "Flat" pour dissimuler le relief,
- Dissimulation de tous les onglets.
(Il est impossible de positionner les onglets en bas s'ils sont en mode "Flat", et ils doivent être en bas sinon il faut repositionner tous les composants des pages...) On perd une vingtaine de pixels en bas de chaque page mais on fera avec...
Cette préparation des onglets étant codée dans le service de gestion des pages, lequel est externe aux outils, il n'y aura plus à s'en soucier pour les prochains outils.
La gestion des pages ne peut pas être plus simple :
Code : Tout sélectionner
Options_Pages.ActivePageIndex := Options_List.Selected.Index;
Pour simplifier encore, il a été décidé que :
- Les composants des pages ne serait pas "liés" à la bordure de droite, et leur largeur n'augmentera donc pas avec la fenêtre.
- En conséquence, les pages d'option ne contiendrait pas de GroupBox, les sous-catégorisations de faisant uniquement par des titres soulignés : Au final, l'utilisation d'onglets pour gérer des panneaux multiples ne se fera pas pour les pages "normales" des outils, car la suppression des onglets modifie la surface des panneaux. Acceptable avec les options et les règles mises en place mais ingérable avec les outils dont les composants sont positionnés au pixel près, avec des surcouches de panneaux pour gérer les spliters etc...
Il ne reste plus qu'à coder le contenu de ces pages d'options.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
-
- Administrateur du site
- Messages : 817
- Enregistré le : mer. 22 juin 2011 18:25
Dim 03/03/2013 - Actualités
Traduction
La traduction de la liste des pages provoquait un crash.
Un debug a permis de trouver que c'est le même crash "insolvable" rencontré plus tôt : lors de la création de la fenêtre, le ListView contenant les titres des pages est vide, bien que des items soient ajoutés au design. A midi, il n'était pas possible de sélectionner sa première ligne. Cela a été contourné en forçant cette sélection à plus tard. Mais là il était impossible de traduire les titres. Pas possible de faire ça à un autre moment qu'à la création, donc debug plus poussé. Les 7 items créés au design ont donc été effacés par un ListView.Items.Clear puis recréés. Résultat : 14 items.
Ok, il y a donc un bug Delphi qui fait que les Items ajoutés dans un ListView au design sont inaccessibles lors de la création de la fenêtre. Le code suivant permet de forcer l'activation des items grâce à l'ajout/suppression d'un nouvel item :(L'ajout se faisant sur une liste "vide", le nouvel item a bien la position 0, les items existants ayant les positions 1 à 8 après l'ajout, et 0 à 7 après la suppression.)
La traduction de la liste des pages provoquait un crash.
Un debug a permis de trouver que c'est le même crash "insolvable" rencontré plus tôt : lors de la création de la fenêtre, le ListView contenant les titres des pages est vide, bien que des items soient ajoutés au design. A midi, il n'était pas possible de sélectionner sa première ligne. Cela a été contourné en forçant cette sélection à plus tard. Mais là il était impossible de traduire les titres. Pas possible de faire ça à un autre moment qu'à la création, donc debug plus poussé. Les 7 items créés au design ont donc été effacés par un ListView.Items.Clear puis recréés. Résultat : 14 items.
Ok, il y a donc un bug Delphi qui fait que les Items ajoutés dans un ListView au design sont inaccessibles lors de la création de la fenêtre. Le code suivant permet de forcer l'activation des items grâce à l'ajout/suppression d'un nouvel item :
Code : Tout sélectionner
ListView.Items.Add;
ListView.Items.Delete(0);