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

Composants FMX Delphi Discussion :

Frame et Docking de Forme


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 638
    Billets dans le blog
    65
    Par défaut Frame et Docking de Forme
    FMX ne semble pas connaitre ces termes .

    Après maints essais et recherches google , j'ai plus ou moins réussi une pseudo frame selon la méthode indiquée dans le wiki
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    type
      TForm15 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Lang1: TLang;
        Layout1: TLayout;
        procedure AjouterClick(Sender: TObject);
        procedure EffacerClick(Sender: TObject);
      private
        { Déclarations privées }
        procedure EmbeddForm(AParent:TControl; AForm:TCustomForm);
      public
        { Déclarations publiques }
      end;
     
    var
      Form15: TForm15;
     
    implementation
     
    {$R *.fmx}
     
    uses Unit16;
     
    procedure TForm15.AjouterClick(Sender: TObject);
    begin
     EmbeddForm(Layout1, TForm16.Create(self));  // afficher la 'fausse frame'
    end;
     
    // équivaut a la frame 
    procedure TForm15.EmbeddForm(AParent:TControl; AForm:TCustomForm);
    begin
      while AForm.ChildrenCount>0 do
        AForm.Children[0].Parent:=AParent;
    end;
     
    procedure TForm15.EffacerClick(Sender: TObject);
    begin
      Layout1.DeleteChildren;    // efface bien les enfants 
      // cependant les contrôles apparaissent toujours 
    end;

    si la méthode fonctionne pour l'ajout des composants , par contre impossible de l'effacer . Dans mon test , la TForm16 contient un label et un bouton . Après la procedure effacerClick le bouton et le label sont toujours visible , cependant le bouton ne fonctionne plus .

    j'ai essayé plusieurs choses pour effacer :
    - Encadré le deletechildren avec un BeginUpdate et EndUpdate
    - Ajouté un repaint etc...
    Rien n'y fait

    n'y aurait t-il aucun moyen d'avoir du docking avec FMX ?! c'est bien beau des applications 'mono forme' mais pour une bonne grosse application c'est un peu léger . FMX me semble bien jeune

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 937
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Ne faut-il pas plutôt ajouter les enfants par TLayOut.Add() ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 638
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Bonjour,

    Ne faut-il pas plutôt ajouter les enfants par TLayOut.Add() ?
    pourquoi pas , effectivement , mais où j'ai mis Layout cela aurait pu aussi bien être un Panel ou un Tabcontrol (en fait j'ai essayé ces 2 autres également ) .

    En fait j'ai suivi ce qui était indiqué dans le wiki ici

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 937
    Billets dans le blog
    6
    Par défaut
    Il faut donc peut-être garder une référence sur la fiche pour changer son Parent (nil) et la détruire si on n'en a plus besoin.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Membre chevronné
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Billets dans le blog
    4
    Par défaut Je travaille la question
    Bonsoir

    Je n'ai pas pu tester les dernières réponses reçues faute de temps mais,

    Pour avoir une pseudo frame ou une fenêtre enfant, il y a un truc simple

    form1, form pricipale contient un panel1

    form2, contient un panel2 avec un button1

    Si je met form2.panel2.parent := form1.panel1, form2 visible:=false, alors j'ai le contenu du panel2, dans dans form1 avec le code du button1 du panel2.

    Voilà, si ça peux aider

    Cordialement

    André

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 638
    Billets dans le blog
    65
    Par défaut
    Eureka

    la 'formule magique' était invalidateRect et ce qu'un repaint/refresh ou tout autre test ne faisait pas s’accomplit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm15.EffacerClick(Sender: TObject);
    begin
      Layout1.DeleteChildren;    // efface bien les enfants 
      Layout1.InvalidateRect(Layout1.BoundsRect);
    end;
    il me reste encore 11 jours d'essais pour trébucher sur ces nouveaux concepts

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 638
    Billets dans le blog
    65
    Par défaut
    c'est ce qui m'a fait dire

    Citation Envoyé par sergiomaster
    FMX me semble bien jeune

  8. #8
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    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 093
    Par défaut
    FMX est jeune mais son "modèle" VGScene d'Eugene Kryukov a près de 5 ans !
    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

  9. #9
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 638
    Billets dans le blog
    65
    Par défaut une autre solution
    A voir une vidéo proposant une autre manière de faire le 'Framing' très convaincante
    ici

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

Discussions similaires

  1. PageControl et Docking de Form
    Par SergioMaster dans le forum Langage
    Réponses: 6
    Dernier message: 10/12/2014, 10h09
  2. Evennement sur Dock de Form ?¿ (Hors MDI)
    Par Themacleod1980 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/01/2013, 16h13
  3. Form action Frame
    Par phil22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 08/08/2006, 12h14
  4. Utilisation des Frames sur une Forms
    Par selmak7 dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/07/2006, 17h42
  5. Frame de forme adapatble
    Par kivan666 dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 17/03/2006, 08h18

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