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

  1. #1
    Responsable Lazarus & Pascal

    Techniques d'enchaînements de formes (SDI, MDI et Docking), un tutoriel de Serge Girard
    Techniques d'enchaînements de formes
    SDI, MDI et Docking


    Dès lors que l’on écrit des applications de taille conséquente, l’interface utilisateur se compose de nombreux écrans différents s’enchaînant ou non. Serge Girard passe en revue trois techniques (SDI, MDI et Docking) à la disposition du programmeur pour la gestion de ce problème en insistant sur le Docking.

    Les utilisateurs de Delphi seront tout particulièrement intéressés par l'équivalent proposé pour le framework FireMonkey qui ne dispose pas de propriété adaptée.




    Merci à Serge pour ce cadeau de Noël qui donne de la couleur au site et de la vitalité aux applications écrites avec Delphi !

    Le tutoriel est visible ici : https://serge-girard.developpez.com/...elphi/Docking/

    Que pensez-vous de ce tutoriel ?
    Comment gérez-vous les écrans de vos applications ?


    Les meilleurs cours et tutoriels pour apprendre la programmation Delphi
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  2. #2
    Rédacteur/Modérateur

    Merci Gilles d'avoir jouer au Père Noël et d'avoir glisser sous le sapin mon petit cadeau à tous les Delphistes.
    Il y en a d'autres dans ma hotte (disque dur) mais l'emballage (corrections) n'est pas encore fait ce sera pour l'année prochaine
    - une suite à ce tutoriel : FMX, mettre un bouton dans un onglet
    - LiveBindings et composants (je finirai bien par me sortir de l'impasse)
    - LiveBindings et POO, je n'ai pas oublié les demandes à Paris

    j'envisage aussi d'écrire sur les styles, j'ai découvert quelques astuces suite à ma pose de bouton dans un onglet.

    Si d'autres suggestions viennent au lecteur de passage, qu'il n'hésite pas à affuter ma curiosité

    Bonnes fêtes de fin d'année à tous

    Serge
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Membre régulier
    Merci pour ce tuto qui présente parfaitement la gestion des formes dans les frameworks VCL et FMX.

    Bonne fêtes à tous

    Lefju

  4. #4
    Invité
    Invité(e)
    Merci Serge pour tous tes tutos

  5. #5
    Membre émérite
    Bravo Serge et encore merci
    A+
    Charly

  6. #6
    Membre émérite
    Bonjour, une petite alternative à l'un de tes programmes exemple utilisant la propriété Parent (très à la mode ces jours-ci ). Utilisable de la même manière en FMX et en VCL
    Amitiés Alain

  7. #7
    Rédacteur/Modérateur

    Bonjour Alain,

    Question de goût, avec FMX je préfère utiliser AddObject . Certes AddObject lance plus d'instructions, dont celle de changer le parent , mais ainsi je suis sûr qu'interfaces, styles, etc..
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  8. #8
    Membre émérite
    Citation Envoyé par SergioMaster Voir le message
    Bonjour Alain,

    Question de goût, avec FMX je préfère utiliser AddObject . Certes AddObject lance plus d'instructions, dont celle de changer le parent , mais ainsi je suis sûr qu'interfaces, styles, etc..
    J'avais effectivement eu quelques problèmes avec les feuilles de style en FMX que j'avais centralisé dans un TDatamodule

  9. #9
    Membre confirmé
    Je te remercie beaucoup pour tous ces magnifiques tutoriels

  10. #10
    Membre émérite
    Merci Sergio pour ce cadeau de Noël
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  11. #11
    Membre actif
    Merci pour ces tutoriels...encore des nouvelles méthodes alléchantes à tester...
    Windows 7 / Delphi Tokyo
    "Les choses ne changent pas. Change ta façon de les voir, cela suffit" Lao Tseu

  12. #12
    Membre averti
    Excellent tuto , vraiment !

    Pour la partie FMX, j'ai juste une petite remarque a faire, tu utilises cette syntaxe:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
      ATabItem := TabControl1.Add();
      Liste.Add(Format('Tab%d%8x',[TabControl1.TabCount-1,F.RectColor]),F);


    Moi cela me chagrine, je préfère ceci:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
      ATabItem := TabControl1.Add();
      Liste.Add(Format('Tab%d%8x',[ATabItem.Index, F.RectColor]), F);


    A moins qu'il existe une raison, a ce choix...
    ----------------------------------------
    Site perso Dergen.fr
    Cartographe officiel du JDR Polaris

  13. #13
    Rédacteur/Modérateur

    Bonjour
    Citation Envoyé par der§en Voir le message

    A moins qu'il existe une raison, a ce choix...
    Aucune si ce n'est que je n'y ait pas pensé pour la petite histoire, au départ j'ai utilisé une variable globale puis une propriété. Il fallait donc incrémenter cette variable, j'ai voulu simplifier au maximum et donc supprimé celle-ci, la ligne suivante m'a poussé à utiliser la même "syntaxe".
    Ta note est rajoutée , j'en ai également profité pour ajouter une autre note indiquant que le docking est également une fonctionnalité de D4, encore merci defluc pour cette précision.

    Joyeuses fêtes de fin d'année
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  14. #14
    Futur Membre du Club
    une autre "form" de stokage
    Avec le SDI et la VCL on peut aussi afficher un TForm dans un autre TForm et si dans le TForm enfant vous retirez le barre de titre et ses boutons vous avez tous les avantages d'un TForm sans son aspect. Plus rapide en programmation et plus simple en gestion de fenêtres.

  15. #15
    Rédacteur/Modérateur

    Bonjour,

    Avec le SDI et la VCL on peut aussi afficher un TForm dans un autre TForm et si dans le TForm enfant vous retirez le barre de titre et ses boutons vous avez tous les avantages d'un TForm sans son aspect.
    Je ne suis pas du tout d'accord, en maintenant certaines applications je suis justement "tombé" sur des cas semblables et c'est justement à cause du comportement de l'application (formes cachées) que l'on avait fait appel à mes services.

    La forme "enfant" que vous décrivez n'en est pas une au sens strict du terme, déplacez la forme principale la forme enfant ne suit pas. Ce n'est pas tant l'affichage d'une fenêtre dans une autre fenêtre que sur une autre fenêtre que vous faites. Vous pourriez faire la même chose avec un TFrame
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

###raw>template_hook.ano_emploi###