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

Langage Delphi Discussion :

PageControl et Docking de Form


Sujet :

Langage Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut PageControl et Docking de Form
    Comme devoirs de vacances , je me lance dans le docking (objectif : me passer du MDI qui est , parait-il, obsolète)

    Pas de soucis , coté création et stockage dans un TPageControl d'une form principale

    Code création d'une forme : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TMainForm.BitBtn1Click(Sender: TObject);
    var F : TUneForm;
    begin
      F:=TUneForm.Create(Application);
      F.ManualDock(PageControl1);
      F.Show;
      PageControl1.ActivePageIndex:=PageControl1.PageCount-1;
    end;

    Une Form (dragkind:=dkDock) contient un Bouton pour Fermer celle-ci , plus
    Code libération de la form : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TUneForm.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    Action:=caFree;
    end;

    par contre reste un problème : comment passer à l'onglet précédant lorsque je détruis une forme ?
    Il semblerai que dans ce cas , je passe toujours au premier onglet du Tpagecontrol , cependant ni l'évènement OnChange , ni le OnChanging ne semblent être "stimulés"

    Question subsidiaire : Ne vais je pas avoir des problèmes de libération de mémoire ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Première partie résolue par une petite astuce

    Avant de fermer la form je la déstocke
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ManualFloat(Rect(0,0,0,0));
    et là , les évenements du PageControl (onChange,onChanging,onundock) fonctionnent

    Peut-être pas très élégant mais efficace
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    Cela fonctionne très bien.
    En plein phase de test, je trouve cela très intéressant, toutefois je me pose une question pour laquelle je sèche un peu
    Comment juste empécher le "undocking sauvage" ?

    je voudrais que la fiche soit OBLIGATOIREMENT fermée par un bouton fermer (ça c'est ok je sais faire) et qu'on ne puisse pas la sortir du "docking "

    Michel

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par mballasse
    Comment juste empécher le "undocking sauvage" ?
    enlever le (dragkind:=dkDock) ou plutôt ne pas le renseigner !
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 56
    Points
    56
    Par défaut
    Ok mais on ne peut pas laisser la propriété vide
    Et a quel endroit sur les forms enfant ou sur la pagecontrol ?

    Petit complément d'information ça marche nickel avec le TPageControl standard, mais cela ne marche pas avec le TcxPageControl (DevExpress)
    Je vais fouillasser pour comprendre pourquoi cela ne marche pas

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    hum , oui désolé , j'ai répondu un peu (trop) vite.

    C'était bien évidemment au niveau du pagecontrol de la forme principale
    par ne pas le renseigner , je voulais dire laisser à la valeur défaut c.a.d dkdrag
    et enfin après avoir regarder dans mes programmes je laisse (dans ces cas là) la propriété (toujours de pagecontrol) docksite à false
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 56
    Points
    56
    Par défaut
    Ok tout est nickel même avec le TcxPageControl, j'ai du glisser merdé dans la mise en place
    Merci en tout cas pour votre aide je vais pouvoir migrer mes 350 fiches

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Evennement sur Dock de Form ?¿ (Hors MDI)
    Par Themacleod1980 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/01/2013, 16h13
  2. Frame et Docking de Forme
    Par SergioMaster dans le forum Composants FMX
    Réponses: 11
    Dernier message: 01/06/2012, 10h37
  3. plusieurs form ou PageControl
    Par lili81 dans le forum C++Builder
    Réponses: 4
    Dernier message: 27/04/2008, 22h12
  4. ajout d'un pagecontrol sur une form existante
    Par Mihalis dans le forum Delphi
    Réponses: 5
    Dernier message: 06/06/2007, 09h43
  5. Garder les proportions d'un pagecontrol sur une form
    Par neuneu1 dans le forum Delphi
    Réponses: 4
    Dernier message: 16/05/2007, 17h36

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