IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Comment rendre propre sa form de travail ?


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Direction financière et formateur en gestion et contrôle de gestion
    Inscrit en
    Mai 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Direction financière et formateur en gestion et contrôle de gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2003
    Messages : 222
    Par défaut Comment rendre propre sa form de travail ?
    Bonjour à tous,
    Je ne savais pas trop où poster ma question ... qui finalement n'est pas simple à exploser simplement

    J'ai une form avec tout un tas de composants, j’appelle ça ma fiche principale.
    Mais j'ai aussi beaucoup de Tpanel qui encapsule des sous fonctions et qui se rendent visibles ou non suivant les choix de l'utilisateur.

    Le soucis, c'est que cela fait beaucoup de composants qui sont les uns par dessus les autres et du coup, la fiche principale est recouverte de ces TPanel ce qui rends parfois l'accès aux composants en dessous un peu sportif (il faut déplacer, ranger, ...). Généralement aussi, en exécution, ma fiche principale suit la grandeur de la fiche (les grilles s'agrandissent ...)

    Ce qui m'a fait réagir, c'est un TPanel dans lequel par transparence, je vois les TLabels de la feuille principale (en conception bien sur)! Tout n'est pas recouvert par le TPanel. C'est pénible.

    J'ai pensé à agrandir la feuille de conception et ranger proprement les Tpanels les uns à coté des autres. Il suffit de régler les paramètres Heigth et Left de la form dans le FormShow,
    mais il y a peut être plus élégant (sans aller jusqu'à la création dynamique de composants, qui serait une jolie option mais bon, on a du visuel, autant s'en servir ...).

    Question : Comment vous, vous gérez la chose ?

    Voilà, il n'y a peut être aucune solution et tout le monde est à la même enseigne, perso je pense à un conteneur dans lequel on mettrait tout et que l'on pourrait rendre visible ou non lors du développement, mais à priori, j'en demande trop ou alors je suis en avance sur mon temps ... ou alors il y a une méthode et je vais tomber par terre en lisant vos réponses.

    Merci en tout cas.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 086
    Par défaut
    Tu peux utiliser des TPageControl pour avoir plusieurs affichages sur la même fiche, avec TabVisible tu peux cacher au RunTime uniquement ces onglets (en DesignTime laisse les visibles et positionné en bas)
    C'est ce que j'évoquais dans le sujet Structurer son code.

    tu peux tout simplement observer la pattern 'Diviser pour régner' soit utiliser plusieurs TForm que tu appelles les unes après les autres si tu as ce genre de workflow
    Tu peux aussi ancrés ces TForm secondaires dans une zone de ton MainForm si cela se prête à l'ergonomie de ton application.

    je pense par exemple au programme d'installation, avec un bouton suivant, tu as une fenêtre principale et dans une zone tu ancres des TForm secondaires (ou TFrame)

    Tu peux aussi sortir le maximum de logique métier dans une unité à part, si tu as de la base de données, un TDataModule peut faire un objet à mi-chemin entre le Contrôleur et le Modèle dans une pseudo MVC Delphisé, suffit de lui ajouter des méthodes pour chaque action (SELECT, UPDATE ...)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    j'ai deux stratégies pour cela, parfois complémentaires d'ailleurs.

    1) au lieu d'utiliser un Panel j'utilise un TFrame que je charge éventuellement dynamiquement au lieu de la poser sur la fiche (sinon le gain n'est pas flagrant)

    2) j'utilise un PageControl dont je cache les onglets (TabSheet.TabVisible = False) et j'active la page dont j'ai besoin au lieu de jouer sur la visibilité des Panels, gros avantage c'est qu'en Design je peux passer d'une page à l'autre pour travailler sur celle qui m'intéresse.

    c'est aussi possible avec un TCardPanel
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre éclairé

    Inscrit en
    Novembre 2002
    Messages
    815
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 815
    Par défaut
    bonjour

    J'ai été aussi dans ce cas. Je pense qu'on tombe souvent dans ce problème quand un soft qui devait rester léger subit des évolutions dites "légères" durant plusieurs années et qui en fait devient une usine a gaz!

    Comme pour toi (patrice) j'ai été dans ce cas et cela devenait acrobatique pour trouver le bon composant, surtout qu'à la fin même leur nom n’était plus vraiment significatif.
    De plus à passer les composants, dessus/dessous, visible/invisible..., on a toujours des surprises à l'utilisation et cela n'optimise pas le temps de test ou de validation.

    J'ai aussi principalement deux cas.

    A. cas : Quand l'application n'est pas trop gourmande en visuel, Comme ShaiLeTroll j'utilise un TpageControl avec les "Tabvisible" visible ou pas. Cela me permet de visualiser l’aspect visuel en jouant sur les "Tabvisible".

    B. cas : Quand j'ai vraiment beaucoup de composants imbriqué, voir des groupes de composants répliqués :
    1. Je crée durant le design les composants qui ont beaucoup de propriétés où ceux donc je ne suis pas sûr des propriétés à l'instant de la création.
    2. Ensuite je crée juste les grands "conteneurs" (les volumes avec scroolbox) qui vont contenir les composants, Tlabel , Tedit, Tpanel..., qui sont souvent nombreux.
    3. Ces composants sont crées en dynamiques au besoin durant le Runtime.
    4. Au moment de cette création, des routines initialises les fontes, les tailles ...., car j'avais aussi des problèmes visuel sur des propriétés mal initialisées lors de la pose des composants sur la fiche


    Cela semble demander un peu plus de temps de codage, mais avec quelques routines spécifiques cela facilite la tache et le gain est gagné par ailleurs.


    bonne journée

  5. #5
    Membre confirmé Avatar de SuiSeb
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2019
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2019
    Messages : 33
    Par défaut
    Bonjour,

    Dans une des sociétés où j'ai travaillé, ils avaient créé des fenêtres pour chaque onglets et faisaient le chargement de la ou des fenêtres dans la zone qui les intéressaient.
    Ainsi, la form "principale" était allégée et le code aussi mais bon j'ai pas été trop séduit par ce fonctionnement.

    Seb.

Discussions similaires

  1. Comment rendre plus propre ce code super simple svp ?
    Par frakosun dans le forum jQuery
    Réponses: 4
    Dernier message: 28/10/2009, 09h31
  2. Comment rendre internet explorer parent de mon window form ?
    Par Battosaiii dans le forum Windows Forms
    Réponses: 0
    Dernier message: 20/08/2009, 13h40
  3. comment rendre une form une feuilles MDI
    Par NAIMA2 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/01/2007, 20h17
  4. Réponses: 4
    Dernier message: 30/05/2006, 09h30
  5. Comment rendre une form transparente à certains endroits ?
    Par ludo5532 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 21/08/2005, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo