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 :

Structurer son code


Sujet :

Delphi

Vue hybride

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

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Par défaut Structurer son code
    Bonjour !

    Je travaille sur un projet un petit peu complet (pour bien me faire la main avec delphi).

    Ce projet comporte plusieurs parties : exemple : clients, contacts, equipement, etc...
    J'aimerais savoir si il est possible d'au lieu de créer une application avec un form et tout coder dedans, de scinder chaque partie dans des unités différentes.
    Par exemple un onglet dans l'application principale qui a chaque clic, charge les unités...Si quelqu'un a des infos ou un tuto sur ça, c'est sympa

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Ukraine

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 162
    Par défaut
    Bonjour,

    Vous pourriez créer plusieurs Form, et y mettre chaque partie homogène. Elles communiqueraient alors avec ta fenêtre principale.

    Vous pourriez aussi mettre toutes tes fonctions/procédures communes dans une fichier Unit et l'ajouter dans les uses de votre unité principale.

    Si cela ne vous aide pas tant que ça, pourriez-vous reformuler ou être plus explicite.
    Merci.

  3. #3
    Membre confirmé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Par défaut
    Désolé pour mon manque de clarté

    En fait j'ai un form principal qui contient des ongliets (TTabControl par exemple)
    et chaque contenu par onglet serait en fait une autre unité (form ?) qui sera chargé dynamiquement.
    Comme ça je crée mes forms séparément et non dans le form principal

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Ukraine

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 162
    Par défaut
    Sauf si vous mettez chaque contenu d'un TabControl dans un Frame et vous créez dynamiquement au besoin. Mais je trouve cela plutôt "barbare" dans ce contexte. ICI et ICI.

    Comme a dit ShaiLeTroll, utiliser autrement les Uses, écrire son code dans une unité et l'inclure dans les uses de la Form principale.

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    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 081
    Par défaut
    Pour le TTabControl, tu peux utiliser soit
    - des TFrames construites et ajoutés en DesignTime
    - des TFrames construites en DesignTime mais ajoutés en RunTime (propriété Parent)
    - des TForm construites en DesignTime dont l'on change la propriété Parent en RunTime

    J'ai pour ma part utilisé ce dernier cas, avec au moins 20 onglets, certains pouvant ouvrir la même fenêtre

    Tu peux aussi utiliser un TPageControl, là ta fenêtre aura tous les éléments visuels mais tu peux créer des unités (sans fenêtre) qui contiendront le code intelligent

    L'erreur classique c'est coder tout directement dans le OnClick ...
    il y a la partie affichage, il semble logique quel y soit !
    faire un controleur du MVC demande des efforts qui compliquent le développement, le Delphi et on IDE n'est pas forcément fait pour cela !

    La partie métier comprenant la vérification de la cohérence de données, il est préférable de l'isoler pour pouvoir la réutiliser dans d'autre écran
    Ainsi, peu importe par où l'on passe, c'est toujours les mêmes règles qui s'appliquent !
    Cela demande juste de la rigueur !

    Enfin, la gestion du stockage de données, peut être aussi déporter et unifier toujours dans l'idée de réutiliser le code !
    Un code réutilisable doit être facile d'accès, doit avoir un périmètre d'action limité à un seul domaine, DOIT être documenté et ROBUSTE !
    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

  6. #6
    Membre confirmé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Par défaut
    Tu as tout compris
    des TForm construites en DesignTime dont l'on change la propriété Parent en RunTime
    Ca me plait bien cela

    Je vais tester !

  7. #7
    Membre confirmé

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Par défaut
    Bon j'ai testé un truc vite fait ce soir

    Dans mon Form principal j'ai rajouté un page control et la procédure suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TMainForm.AddForm(tabForm : TForm);
    var
      tabSheet : TTabSheet;
    begin
        tabSheet := TTabSheet.Create(PageControl1) ;
        tabSheet.PageControl := PageControl1;
        tabForm.Parent := tabSheet;
        tabForm.Align := alClient;
        tabForm.BorderStyle := bsNone;
        tabForm.Visible := true;
        tabSheet.Caption := tabForm.Caption;
    end;
    Et j'ai crée d'autre Form, et a leur événement create :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TPage1Form.FormCreate(Sender: TObject);
    begin
    MainForm.AddForm(Page1Form);
    end;
    Du peu que j'ai testé ça à l'air pas mal

  8. #8
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    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 081
    Par défaut
    Citation Envoyé par LaurentC33 Voir le message
    J'aimerais savoir si il est possible d'au lieu de créer une application avec un form et tout coder dedans, de scinder chaque partie dans des unités différentes.
    C'est un peu le principe du uses : Création d'un fichier unité

    Citation Envoyé par Aide en ligne de Delphi® et C++Builder®
    Une unité est un module de code Delphi compilé séparément.
    Delphi emploie les unités pour plusieurs raisons.
    Chaque fiche possède sa propre unité et la plupart des composants (ou des groupes logiques de composants) possèdent aussi leurs propres unités


    Citation Envoyé par LaurentC33 Voir le message
    Par exemple un onglet dans l'application principale qui a chaque clic, charge les unités...Si quelqu'un a des infos ou un tuto sur ça, c'est sympa
    Il n'y a de "chargement" des unités
    C'est juste des inclusions de fichier par d'autres !

    tu as Le Guide Delphi par Frédéric Beaulieu

    Sinon, les grand classique comme le MVC qui de donnera une idée sur les concepts de base pour "scinder" le code
    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

Discussions similaires

  1. Structurer son code
    Par Invité dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/04/2014, 01h12
  2. Réponses: 5
    Dernier message: 16/02/2011, 16h04
  3. Réponses: 0
    Dernier message: 30/12/2010, 22h28
  4. Comment structurer son code ?
    Par Djey6 dans le forum wxPython
    Réponses: 1
    Dernier message: 09/12/2010, 16h24
  5. [VBA][Excel] Comment bien structurer son code?
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/03/2007, 19h39

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