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 :

FMX creation Form2


Sujet :

Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 300
    Par défaut FMX creation Form2
    Bonjour
    je viens m'apercevoir que sous FMX
    je ne vois pas comment faire apparaitre une
    deuxième fenêtre (Tform2) et de l'appeler avec Showmodal
    sa existe ou pas
    si dans la négative comment vous faire pour
    faire apparaitre
    exemple: un formulaire a remplir ou une fiche pour cocher
    des options

    merci encore a vous tous

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 300
    Par défaut
    bonjour
    je viens de voir qu'on le remplace par des popups
    avez des exemples comment sa marche
    merci

  3. #3
    Membre expérimenté
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 632
    Billets dans le blog
    1
    Par défaut
    Oui, FMX supporte bien ShowModal, mais son comportement varie selon la plateforme (Windows ou Mobile).

    https://docwiki.embarcadero.com/Libr...Form.ShowModal

    sur Windows FMX se comporte comme VCL : ShowModal fonctionne de façon synchrone et vous pouvez créer/afficher TForm2 puis récupérer ModalResult. Sur mobile il faut préférer l’overload asynchrone ou des alternatives (frames/popups).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var
      Form2: TForm2;
    begin
      Form2 := TForm2.Create(nil);
      try
        if Form2.ShowModal = mrOk then
          // récupérer valeurs depuis Form2
      finally
        FreeAndNil(Form2);
      end;
    end;
    je viens de voir qu'on le remplace par des popups
    avez des exemples comment sa marche
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    procedure TForm1.ShowOptionsPopup(Sender: TObject);
    var
      P: TPopup;
      L: TLayout;
      CB1, CB2: TCheckBox;
      BtnOK, BtnCancel: TButton;
    begin
      // Création du popup
      P := TPopup.Create(Self);
      P.Parent := Self; 
      P.PlacementTarget := Sender as TControl;
      P.Placement := TPlacement.Bottom;
      P.HorizontalOffset := 0;
      P.VerticalOffset := 6;
     
      // Conteneur pour mise en page
      L := TLayout.Create(P);
      L.Parent := P;
      L.Align := TAlignLayout.Top;
      L.Padding.Rect := TRectF.Create(8,8,8,8);
     
      // Checkboxes
      CB1 := TCheckBox.Create(P);
      CB1.Parent := L;
      CB1.Position.Y := 4;
      CB1.Text := 'Option A';
     
      CB2 := TCheckBox.Create(P);
      CB2.Parent := L;
      CB2.Position.Y := CB1.Position.Y + 36;
      CB2.Text := 'Option B';
     
      // Boutons
      BtnOK := TButton.Create(P);
      BtnOK.Parent := L;
      BtnOK.Position.Y := CB2.Position.Y + 44;
      BtnOK.Text := 'OK';
      BtnOK.OnClick := 
        procedure(Sender2: TObject)
        begin
          // Récupérer valeurs et fermer
          if CB1.IsChecked or CB2.IsChecked then
          begin
            Self.Tag := Integer(CB1.IsChecked) or (Integer(CB2.IsChecked) shl 1);
          end;
          P.IsOpen := False;
          P.Free;
        end;
     
      BtnCancel := TButton.Create(P);
      BtnCancel.Parent := L;
      BtnCancel.Position.Y := BtnOK.Position.Y;
      BtnCancel.Position.X := BtnOK.Position.X + 90;
      BtnCancel.Text := 'Annuler';
      BtnCancel.OnClick := 
        procedure(Sender2: TObject)
        begin
          P.IsOpen := False;
          P.Free;
        end;
     
      // Ouvrir le popup
      P.IsOpen := True;
    end;
    On ne peut pas faire confiance à un code qu'on n'a pas entièrement écrit soi‑même, et encore moins à celui qu'on a écrit entièrement. :aie:

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/04/2013, 21h21
  2. Réponses: 1
    Dernier message: 03/11/2006, 22h23

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