2010-02-05 4 views
1

Dans notre application principale, nous avons un formulaire qui nous permet de faire une analyse croisée des données de quatre façons différentes. Actuellement, chaque analyse apparaît dans sa propre page d'un PageControl sur l'écran. Maintenant, la haute direction aimerait que nous ajoutions un aspect historique au formulaire, que nous utiliserions dans d'autres domaines, mais l'imbrication de deux d'entre eux semble être une mauvaise idée pour afficher les périodes et analyser les onglets empilés au-dessus de L'un et l'autre. Quelqu'un a-t-il des suggestions sur la façon dont nous pourrions retravailler cela pour avoir l'air décent et bien fonctionner? Merci.Quelles alternatives de conception sont disponibles pour les contrôles de page imbriqués?

Répondre

1

IMHO, vous pouvez utiliser des cadres pour chaque page de résultats d'analyse, puis vous pouvez utiliser PageControl ou TabSet ou tout autre contrôle visuel pour charger et afficher le cadre approprié.

Étant donné que les cadres sont totalement indépendants du contrôle visuel que vous utilisez pour sélectionner la période et l'analyse appropriées, vous ne serez pas limité aux contrôles basés sur des tabulations; Par exemple, vous pouvez avoir un onglet pour la sélection de l'analyse, et un arbre pour la sélection de la période.

Les cadres ont quelques avantages supplémentaires ici aussi:

  • Tout d'abord, leur code est conservé dans unités séparées et cela augmentera la lisibilité du code.
  • Deuxièmement, vous pouvez concevoir un cadre de base et mettre tous les contrôles et les codes qui toutes ces actions 4 d'analyse dans ce cadre de base, et de cette façon ont une meilleure réutilisation du code.
  • Troisièmement, vous pouvez déposer chaque image sur votre formulaire principal et les faire charger comme avant, ou vous pouvez définir un contrôle conteneur (par exemple un panneau) et en fonction de la charge de sélection de l'utilisateur l'un des la cadres dans le contrôle de conteneur dynamiquement, afin de réduire la charge initiale fois de votre application, et probablement réduire la consommation globale de ressources du système .
+1

Tout le monde a aimé cette solution, car il est plus simple de coder dans le temps limité dont nous disposons. –

4

Qu'en est-il de l'utilisation du contrôle TTabset en bas du formulaire pour permettre la commutation entre les périodes historiques et les données actuelles? Je voudrais également m'assurer qu'il y avait une différence visuelle dans la façon dont les données sont présentées pour les données historiques par rapport aux données actuelles. Comme utiliser un fond de cellules grises pour les données historiques.

+1

Voir l'IDE Delphi pour un exemple avec les onglets "code" et "history". –

2

Utilisez un petit TTabSet (horizontal) avec un TTabSet vertical.

Voir here (vous pouvez cliquer sur l'image pour l'agrandir). Le TTabSet est livré OOTB avec Delphi. Le vertical peut être écrit très facilement si vos besoins sont faibles. Si tu veux, je peux partager le code. Mais si vous voulez un meilleur jeu d'onglet vertical, vous pouvez passer plus de temps sur l'écriture ou en obtenir un qui est prêt à partir de Torry ou ailleurs.

HTH.

Questions connexes