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 :

Plusieurs boutons pour une même Form


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 26
    Par défaut Plusieurs boutons pour une même Form
    Bonjour,

    Je souhaite avoir plusieurs boutons qui ouvre une même Form mais avec des paramètres différents.

    Je veux juste que chaque bouton permettent de configurer un profil différent mais avec la même Form comme base.

    Quelle stratégie me conseillez-vous ?

    Merci pour votre aide.

  2. #2
    Membre éclairé
    Avatar de Aooka
    Homme Profil pro
    Scripting Powershell & Wlangage
    Inscrit en
    Juillet 2015
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Scripting Powershell & Wlangage

    Informations forums :
    Inscription : Juillet 2015
    Messages : 231
    Par défaut
    Salut, mon exemple est débile mais marche :

    Dans la forme avec tes deux boutons :
    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
    procedure TForm9.Button1Click(Sender: TObject);
    var
      Method1 : TForm10;
    begin
      Method1 := TForm10.CustomCreate1(Owner);
      Method1.ShowModal;
    end;
     
    procedure TForm9.Button2Click(Sender: TObject);
    var
      Method2 : TForm10;
      bOk : Boolean;
    begin
      bOk := True;
      Method2 := TForm10.CustomCreate2(Owner, bOk);
      Method2.ShowModal;
    end;
    La forme qui doit être ouverte :
    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
     
    public
        Constructor CustomCreate1(Owner : TComponent);
        Constructor CustomCreate2(Owner : TComponent; bOk : Boolean);
     
    [ ... ]
     
    Constructor TForm10.CustomCreate1(Owner : TComponent);
    Begin
      Inherited Create(Owner);
     
      ShowMessage('Methode 1');
    End;
     
    Constructor TForm10.CustomCreate2(Owner : TComponent; bOk : Boolean);
    Begin
      Inherited Create(Owner);
     
      ShowMessage('Methode 2');
    End;
    En gros tu passe pas des constructeurs différents tout bêtement.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 26
    Par défaut
    Super, merci Martin je vais tenter et je te dirai si la méthode convient à mon problème.

  4. #4
    Membre Expert

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Par défaut
    Bonjour.

    Une autre solution (plus simple) est de créer dans ta Form appelée une procedure (publique) avec une variable paramètres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm2.DoOpen(Param: integer);
    begin
       if Param = 1 then Label1.Caption:= 'Appel 1'
          else Label1.Caption:= 'Appel 2';
       ShowModal;
    end;
    Et dans la form appelante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       Form2.DoOpen(1);
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    begin
       Form2.DoOpen(2);
    end;
    Cordialement
    Thierry

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 26
    Par défaut
    Désolé j'ai oublié de revenir vers vous

    La solution de ThWilliam convient à ce que je veux faire. Passer des paramètres différents me suffisait.

    Merci à tout les deux pour vos solutions.

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

Discussions similaires

  1. plusieurs boutons pour une même action
    Par SweetBlueMelody dans le forum jQuery
    Réponses: 4
    Dernier message: 16/02/2012, 15h53
  2. Lire plusieurs vidéos sur une même form en même temps
    Par kurul1 dans le forum C++Builder
    Réponses: 33
    Dernier message: 21/04/2008, 09h04
  3. Plusieurs valeurs pour une même colonne
    Par maxlegrand dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/10/2007, 13h32
  4. Plusieurs entités pour une même relation
    Par Mandotnet dans le forum Schéma
    Réponses: 1
    Dernier message: 08/04/2007, 19h13
  5. Affichage de plusieurs graphiques sur une même form
    Par redpulse dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/02/2007, 08h41

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