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 :

l'avenir de MDI


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 73
    Points : 61
    Points
    61
    Par défaut l'avenir de MDI
    Bonjour à tous,

    Je suis sur le point d'entamer la refonte complète d'une énorme application. Se pose la question : MDI, pas MDI ?

    Or j'ai lu dans un message (décembre 2005, pas du premier avril) que MDI ne serait plus supporté par Borland... izit eu djauke ? Et si c'est bien vrai, comment procéder pour avoir un résultat du même genre ?

    Paul

  2. #2
    Membre éprouvé
    Avatar de octal
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 441
    Points : 957
    Points
    957
    Par défaut
    Bonjour,
    en effet le MDI est fortement déconseillé pour de nouveaux développements. Microsoft ainsi que la plus part des fournisseurs d'outils de développement ont constaté que MDI n'été pas aussi productive qu'il le devait, surtout qu'il été sencé permettre de repérer rapidement un document ouvert parmis d'autre pour faire principalement du copier/coller ou de la consultation. Or maintenant cette fonctionnalité est rempli par l'OS, car tous les bureaux actuels offrent pratiquement une barre de taches. Microsoft a déjà bani ce modele dans Office2003, et vous le voyez clairement quand vous ouvrez deux documents Word par exemple, vous aurez 2 instances de Word ouvertes and la barre de tache contrairement à ce qui devrait se passer dans une appli MDI.
    Maintenant si le modele MDI s'impose à l'appli, comme par exemple dans les outils éditeurs de sources, les utilisateurs sont encouragé à remplacer cela par des interfaces à Onglet. MS a fait ce choix là dans IE7 et dans Visual Studio.

    Par contre, le problème qui risque de se poser sérieusement si Borland vire la gestion MDI de ses outils de dév (surtout de la VCL) c'est qu'on risque de predre les options de FUSION (MERGE) des menus des fenetre MDI avec celles de la fenetre mère, et gérer cela "manuellement" est une vraie galère.

    Bonne journée
    Octal
    http://www.pocketmt.com GLCD Font Creator home site.

  3. #3
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    Salut
    Quand Microsoft on ôté l’ MDI dans office 2003 je voyais sa comme un inconvénient d’avoir plusieurs instance du même programme dans ma barre des tache et je présume que sa consomme beaucoup plus de ressources mais le model par onglet est très bien pour organiser une application.
    La vous me faite peur je viens finir un énorme projet en MDI si c'est le cas quelles sont les raisons qui vont me pousser à revoir mon application.

  4. #4
    Membre éprouvé
    Avatar de octal
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 441
    Points : 957
    Points
    957
    Par défaut
    Il n'y a pas à avoir peur. De plus n'importe qu'elle appli MDI affichant des fenetres volante (child) peut incruster ses fenetre dans des onglets en leur hôtant les bordure et vous pouvez facilement vous retrouver avec une appli avec onglets multiples. Personnellement je n'ai rien contre le mdi mais il faut dire que quand les ecrans sont trops chargé ou que certaines fenetre MDI ont elle meme besoin d'afficher d'autres fenetres il devient compliqué de savoir qu'elle fenetre fille a affiché telle ou telle "sous-fenetre". Pour des appli comme des éditeurs de code pour lequelle une fentre avec une zone de saisie est suffisante ne pose pas de pb, mais une appli de gestion qui afficherai elle meme plusieurs controles ... des fois l'interface est lourdingue. Certaines personnes que je connais s'ensortaient en utilisant des composant simulant une barre de tache à l'intérieur meme de la fenetre parent, cela permet de switcher rapidement d"une fenetre fille vers une autre, et c'est cela que Microsoft veut éviter ... des barre de taches à l'intérieur des appli, sachant que, par exemple, dans Vista, le modele de barre te tache a aussi introduit plein de nouvelles fonctionnalité, l'idéal et de ne pas avoir à dédoubler ces fonctionnalité là.
    Cordialemen,t
    http://www.pocketmt.com GLCD Font Creator home site.

  5. #5
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par octal
    simulant une barre de tache à l'intérieur meme de la fenetre parent, cela permet de switcher rapidement d"une fenetre fille vers une autre, et c'est cela que Microsoft veut éviter ... des barre de taches à l'intérieur des appli
    C'est exactement ce qu'on me demande de faire. Sauf que je ne le sens pas trop.
    J'ai quoi, comme autre possibilité ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  6. #6
    Membre éprouvé
    Avatar de octal
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 441
    Points : 957
    Points
    957
    Par défaut
    franchement je ne vois guère d'autre choix que les onglets, car un menu avec la liste des doc ouvert (comme dans toutes les applis mdi) c'est pas top.
    http://www.pocketmt.com GLCD Font Creator home site.

  7. #7
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    je vais faire un test avec les onglet, je vient de faire un petit test en utilisant PageControl mais sa n'a pas marcher (en MDI)

  8. #8
    Membre éclairé Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Points : 736
    Points
    736
    Par défaut
    il faut que tu code le comportement du MDI avec le pagecontrol
    genre nouvelle fenêtre = nouveau tabsheet
    c'est pas automatique...
    Akim Merabet

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Pour ma part j'ai toujours été agaçé par le fait que les fenêtres MDI restaient captives dans l'espace intérieur à la Fiche-parent.
    J'ai toujours préféré les fiches secondaires indépendantes de la fiche principale. De toute façons MDI ou pas-MDI dès qu'une fenêtre est ouverte elle occupe de l'espace sur l'écran et masque en partie la MDI-parent alors que des fiches-Non-MDI peuvent être posées côte à côte et ripées à volonté.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  10. #10
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    Citation Envoyé par Kaféine
    il faut que tu code le comportement du MDI avec le pagecontrol
    genre nouvelle fenêtre = nouveau tabsheet
    c'est pas automatique...
    oui je sai bien que c'est pas automatique

    je sais pas si en peut faire sa ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Application.CreateForm(TForm1,Form);
    Form1.Parent := Tabsheet1;

  11. #11
    Membre éprouvé
    Avatar de octal
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 441
    Points : 957
    Points
    957
    Par défaut
    en fait tu crée un tabSheet pour chaque nouvelle fenetre, puis tu commence par virer les bordure de ta fenetre fille et sa caption pour éviter de les avoir dans l'onglet puis tu met sa proriété align à alClient pour qu'elle s"accroche complètement à ton tabsheet et tu met son Parent comme tu l'indique dans ton code.
    Ce soir je pourrai poster un code le faisant (maintenant je suis au boulot, désolé).
    Cordialement
    http://www.pocketmt.com GLCD Font Creator home site.

  12. #12
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par octal
    en fait tu crée un tabSheet pour chaque nouvelle fenetre, puis tu commence par virer les bordure de ta fenetre fille et sa caption pour éviter de les avoir dans l'onglet puis tu met sa proriété align à alClient pour qu'elle s"accroche complètement à ton tabsheet et tu met son Parent comme tu l'indique dans ton code.
    Pourquoi pas.
    J'avais pas pensé à mettre les fenêtres filles d'un TabSheet.
    Faut voir ...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  13. #13
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Voici une démo avec une Pagecontrol et des TabSheet créés dynamiquement. Dans ce nouveau TabSheet, la copie d'une TFrame "modèle" contenant divers objets. Pour résumé le programme, il s'agit de sauver des fiches clients et de pouvoir les recharger (choix du format d'enregistrement, CSV ou DFM) :
    http://www.developpez.net/forums/sho...53#post1399453

    Sinon, il existe d'autres solutions pour "remplacer" le MDI, exemple :
    http://www.developpez.net/forums/showthread.php?t=51692
    De retour parmis vous après 10 ans!!

  14. #14
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par Sub0
    Voici une démo avec une Pagecontrol et des TabSheet créés dynamiquement. Dans ce nouveau TabSheet, la copie d'une TFrame "modèle" contenant divers objets. Pour résumé le programme, il s'agit de sauver des fiches clients et de pouvoir les recharger (choix du format d'enregistrement, CSV ou DFM) :
    http://www.developpez.net/forums/sho...53#post1399453
    Sauf que dans cet exemple, chaque "fenêtre" est identique.
    Ca n'est pas mon cas.

    Citation Envoyé par Sub0
    Sinon, il existe d'autres solutions pour "remplacer" le MDI, exemple :
    http://www.developpez.net/forums/showthread.php?t=51692
    Ca change totalement, la façon de voir l'application. J'ai peur de perdre mes utilisateurs (alors qu'on me demande de faciliter leur navigations).
    Malgré tout, ca revient à une sorte de PageControl avec les onglets à gauche.
    Je vais regarder ça aussi ...

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  15. #15
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par Lung
    Sauf que dans cet exemple, chaque "fenêtre" est identique.
    Ca n'est pas mon cas.
    En général, les fenêtres MDI ont un modèle identique au départ, elles contiennent une TForm qui elle-même contient d'autres objets... peu importe le contenu ensuite, la base est la même, non ? ou je me trompe peut-être...
    De retour parmis vous après 10 ans!!

  16. #16
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    le mieux c'est de charger ces fenêtres depuis un paquet, ce qui va optimiser la taille de notre exécutable.

  17. #17
    Membre du Club
    Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 73
    Points : 61
    Points
    61
    Par défaut et du "bête" SDI en simple .show au lieu de .showModal ???
    Je suis en train de faire des tests avec une appli bidon dont mon form principal irait se loger en haut de l'écran, un peu à la façon de l'IDE de Delphi, puis de là l'utilisateur ouvre des fenêtres qui sont en show simple, pas de showModal.

    Je constate que je peux ouvrir autant de fois que je veux le même Form, delphi le renomme xxx_1 xxx_2 etc. De cette façon mon utilisateur peut éparpiller ses fenêtres à l'écran.

    Mais cette façon de faire n'est-elle pas un peu sauvage, et ne risque-t-elle pas de me poser des problèmes ?

    Paul.

    PS : Même si c'est pas ergonomique, mon but est bien de pouvoir ouvrir plusieurs fois des Form très chargées, mes utilisateurs devant consulter plusieurs signalétiques en même temps (ils ont qqun en face d'eux et ouvrent sa fiche, puis un coup de tél ils ouvrent une autre fiche etc.)

  18. #18
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par Sub0
    En général, les fenêtres MDI ont un modèle identique au départ, elles contiennent une TForm qui elle-même contient d'autres objets... peu importe le contenu ensuite, la base est la même, non ? ou je me trompe peut-être...
    C'est vrai : pour moi aussi, le MDI, c'est ça.

    Mais, dans ce que je cherche à faire, c'est différent :
    J'ai une fenêtre principale, qui lance diverses fenêtres. On me demande de pouvoir naviguer entre les fenêres filles, de manière simple.
    Donc, je cherche un truc qui ressemblerait plus ou moins à du MDI, mais sans en être.
    Je suis clair ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  19. #19
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Le tout étant de savoir comment tu veux naviguer entre ces fenêtres... Peut-être as-tu déjà une idée précise...
    De retour parmis vous après 10 ans!!

  20. #20
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par Sub0
    Le tout étant de savoir comment tu veux naviguer entre ces fenêtres... Peut-être as-tu déjà une idée précise...
    Bin, l'idée du PageControl (ou quelque chose dans cet ordre d'idée) ne me semblait pas mauvaise.
    Mais avant de me lancer, je prospectais, des fois qu'il y ait une solution géniale.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

Discussions similaires

  1. L'avenir est-il au PHP ?
    Par Manolo dans le forum Langage
    Réponses: 468
    Dernier message: 11/02/2008, 18h54
  2. L'avenir du BDE et des SQL Links révélé ! <officiel>
    Par Merlin dans le forum Bases de données
    Réponses: 12
    Dernier message: 02/06/2006, 10h18
  3. MDI sans MFC, possible ?
    Par delire8 dans le forum MFC
    Réponses: 4
    Dernier message: 17/06/2002, 07h38
  4. pb fenêtre MDI
    Par dédé dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/06/2002, 18h41
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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