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

Lazarus Pascal Discussion :

Passage de paramètre(s) entre des fiches (forms) [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut Passage de paramètre(s) entre des fiches (forms)
    Bonjour à toutes et à tous.
    OS : Windows 10 Professionnel; Version : 22H2
    Lazarus 3.4
    FPC 3.2.2
    Postgresql 16 (pour mémoire)
    J'ai essayé les solutions proposées par https://forum.lazarus.freepascal.org/ pour passer des paramètres ou variables d'une fiche à une autre. Aucune n'a fonctionné. Je me suis débrouillé en créant une table spéciale dans Postgresql que je mets à jour dans la fiche principale avec la valeur de cette variable, dont je récupère la valeur au moyen d'une requête dans la fiche où j'en ai besoin. Temps d'exécution de la mise à jour ou de la récupération de cette variable : 45 msec. Rien de prohibitif, donc, pour les délais d'exécution. Mais j'aimerais me passer de l'utilisation de Postgresql pour arriver à mes fins.
    Si quelqu'un pouvait m'aider en m'aiguillant vers une solution, je lui serais reconnaissant.
    Merci d'avance pour le temps que vous consacrerez à mon problème.
    Michel.

  2. #2
    Membre averti
    Avatar de sematimo
    Profil pro
    Inscrit en
    Février 2009
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 306
    Points : 303
    Points
    303
    Par défaut
    Bonjour
    petit exemple de passage de paramètres entre fenêtres:

    form1:
    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
    unit Unit1;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
    type
     
      { TForm1 }
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
        procedure affich;
      private
     
      public
      variable:string;     //variable pour passage
      end;
     
    var
      Form1: TForm1;
     
    implementation
       uses Unit2;
    {$R *.lfm}
     
       { TForm1 }
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     variable:=edit1.text;
      form2.Show;
    end;
     
    procedure TForm1.affich;
    begin
        edit1.text:=variable;
    end;
     
    end.
    Form2:
    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
    unit Unit2;
     
    {$mode ObjFPC}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
     
    type
     
      { TForm2 }
     
      TForm2 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
        procedure FormShow(Sender: TObject);
      private
     
      public
     
      end;
     
    var
      Form2: TForm2;
     
    implementation
        uses Unit1;
    {$R *.lfm}
     
        { TForm2 }
     
    procedure TForm2.FormShow(Sender: TObject);
    begin
        edit1.text:=form1.variable;
    end;
     
    procedure TForm2.Button1Click(Sender: TObject);
    begin
       form1.variable:=edit1.text;
      form1.affich;
      close;
    end;
     
    end.

  3. #3
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut
    Merci "sematimo" pour ta réponse rapide.
    Je mettrai en pratique ta solution prochainement, car pour l'heure je pars faire du vélo.
    Bonne journée à toutes et à tous.
    Michel.

  4. #4
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 423
    Points : 9 940
    Points
    9 940
    Par défaut
    Il est aussi possible de créer un constructeur de la Form avec paramètres.
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  5. #5
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut
    À Jon : jamais fait ça. Où puis-je avoir quelques exemples.
    Merci d'avance pour le renseignement, Michel.

  6. #6
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 423
    Points : 9 940
    Points
    9 940
    Par défaut
    Citation Envoyé par Miflon Voir le message
    À Jon : jamais fait ça. Où puis-je avoir quelques exemples.
    Bonjour,

    Voici un petit exemple

    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
      Tfrm_MaFiche = Class(TForm)
     
      ... Tous les compos de ta form...
     
      Private
        MaVariable1 : TypeParam1;
        MaVariable2 : TypeParam2;
     
      Public
        Constructor CreateWithParams(TheOwner : TComponent; MonParam1 : TypeParam1; MonParam2 : TypeParam2);
     
      End;
     
    Var
      frm_MaFiche : Tfrm_MaFiche;
    Dans l'implémentation tu as

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Constructor Tfrm_MaFiche.CreateWithparams(Theowner : Tcomponent;MonParam1 : TypeParam1; MonParam2 : TypeParam2);
    Begin
      Inherited Create(TheOwner);
     
      MaVariable1 := MonParam1;
      MaVariable2 := MonParam2;
    End;

    Lors de la création de la fiche tu fais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MaForm := TFrm_MaFiche.Create(Self; Valeur1, Valeur2)
    MaForm.ShowModal;
    MaForm.Free
    Voilà, en espérant t'avoir aidé.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  7. #7
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut
    À sematimo. Tout fonctionne comme je le souhaite.
    Merci encore, Michel.

  8. #8
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut
    À Jon : merci pour l'exemple.
    Je vais y jeter un œil, et le bon.
    Michel.

  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 744
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 744
    Points : 13 303
    Points
    13 303
    Par défaut
    Pas tout à fait juste.

    Donner un nom différent au constructeur est autorisé mais il faut bien garder à l'esprit qu'appeler Create est toujours possible. Il faudrait dès lors le surcharger et prévoir l'initialisation des variables.

    Le deuxième point, plus problématique, est que depuis CreateWithparams il ne faudrait pas appeler inherited Create mais simplement Create. inherited Create ici est en fait équivalent à TForm(Self).Create, Tfrm_MaFiche.Create si il existe sera purement et simplement ignoré. Ca n'aura pas forcément d'impact si on code pour soi-même (on est censé savoir ce qu'on fait) mais il faudra être strict si on distribue l'unité

    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
    Tfrm_MaFiche = Class(TForm)
    Private
      MaVariable1 :TypeParam1;
      MaVariable2 :TypeParam2;
    Public
      Constructor Create(aOwner :TComponent); override;
      Constructor CreateWithParams(aOwner :TComponent; MonParam1 :TypeParam1; MonParam2 :TypeParam2);
    End;
     
    Constructor Tfrm_MaFiche.Create(aOwner :TComponent); 
    begin
      inherited;    
      MaVariable1 := Init1;
      MaVariable2 := Init2;
    end;
     
    Constructor Tfrm_MaFiche.CreateWithParams(aOwner :TComponent; MonParam1 :TypeParam1; MonParam2 :TypeParam2);
    begin
      Create(aOwner);    
      MaVariable1 := MonParam1;
      MaVariable2 := MonParam2;
    end;
    Mais à moins d'un besoin impératif, il est préférable de redéfinir Create, ce qui masquera le constructeur hérité, plutôt qu'en déclarer un nouveau sous un autre nom.

    Et pour rappel, ne pas oublier qu'il est possible d'avoir plusieurs méthodes portant le même nom dès lors que leurs paramètres sont différents et que overload est spécifié.

    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
    Tfrm_MaFiche = Class(TForm)
    Public
      Constructor Create(aOwner :TComponent); override; overload;
      Constructor Create(aOwner :TComponent; MonParam1 :TypeParam1; MonParam2 :TypeParam2);  overload;
    End;
     
    Constructor Tfrm_MaFiche.Create(aOwner :TComponent; MonParam1 :TypeParam1; MonParam2 :TypeParam2);
    begin
      inherited Create(aOwner);
      MaVariable1 := MonParam1;
      MaVariable2 := MonParam2;
    end;
     
    Constructor Tfrm_MaFiche.Create(aOwner :TComponent); 
    begin
      Create(aOwner, Init1, Init2);
    end;
    Cette approche est préférable à celle de sematimo. Dans son exemple les deux fiches sont interdépendantes, il ne serait pas possible de réutiliser Form2 avec une possible Form3 par exemple.

  10. #10
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 423
    Points : 9 940
    Points
    9 940
    Par défaut
    Merci pour ces précisions Andnotor, même si je n'ai jamais rencontré de problème avec ma méthode, je prends note de tes remarques.
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  11. #11
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut
    Merci à tous les trois.
    Grâce à vous je progresse.
    Je ne remercierai jamais assez les présents sur les forums, les questionneurs, pour leurs questions et les répondeurs pour leurs réponses, leur temps et leur expertise.
    Michel.

  12. #12
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut
    J'ai testé la solution sematimmo, qui fonctionne.
    Je teste la solution de Jon Shannow et j'ai quelques soucis. Tout d'abord j'ai commenté la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CreateForm(Tfiche_r, fiche_r);
    de program.lpr
    J'ai deux fiches fiche_e (expéditrice) et fiche_r (réceptrice).
    Dans la fiche_e j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tfiche_r.create(self, Compte);
    qui génère un "wrong number of parameters for call to create.
    J'ai changé en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tfiche_r.createwithparameters(self, Compte);
    qui bascule bien sur la fiche_r dans laquelle sont définis le constructor et la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    tfiche_r = class TForm
      ...
      private Mavariable1 : integer;
      public
        constructor createwithparameters(TheOwner : TComponent; MonParam1 : integer);
      ...
    implementation
      begin
        Tfiche_r.createwithparameters(self, Compte);
        Inherited Create(TheOwner);
        MaVariable1 := MonParam1;
      {autres initialisations}
      end;
    et là après la pose d'un point d'arrêt sur "Inherited create (theOwner);" apparait le message
    "EReadError" fiche_r.OnCreate ; invalid value for property".
    Ce point d'arrêt m'a permis de contrôler que le paramètre compte est bien transmis à Tfiche_r.createwithparameters.
    Que se passe-t-il? Comment puis-je remédier à cette erreur.
    En attendant je vais tester la solution d'Andnotor.
    Merci pour votre temps.
    Michel.

  13. #13
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut
    J'ai créé une nouvelle application et tout fonctionne bien avec le code "Jon Shannow".
    Je me plonge dans dans le code où j'ai intégré cette méthode pour trouver où ça coince.
    Michel.

  14. #14
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut
    Ça fonctionne maintenant à la "Jon Shannow".
    Je me lance maintenant avec le code à la "Andnotor".
    Je passe à résolu cette discussion.
    Encore merci à tous les trois.
    Michel.

  15. #15
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut
    À "Andnotor". Je ne vois pas à quoi correspondent Init1 et Init2 dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Constructor Tfrm_MaFiche.Create(aOwner :TComponent); 
    begin
      inherited;    
      MaVariable1 := Init1;
      MaVariable2 := Init2;
    end;
    Où sont instanciées et définies ces deux variables?

  16. #16
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 744
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 744
    Points : 13 303
    Points
    13 303
    Par défaut
    Pour reprendre l'exemple de Jon Shannow, ce sont les valeurs par défaut (des constantes) de type TypeParam1/TypeParam2.

    A toi de savoir quel(s) type(s) tu as réellement besoin, ça ne ressort pas de la discussion...

  17. #17
    Membre habitué
    Homme Profil pro
    libre
    Inscrit en
    Mai 2024
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : libre

    Informations forums :
    Inscription : Mai 2024
    Messages : 104
    Points : 186
    Points
    186
    Par défaut
    Pourquoi compliquer les chose alors qu'on peut faire simple et d'une manière naturelle avec une simple méthode pour charger les paramètres de la forme sans toucher au constructeur par défaut qui d'ailleurs n'importe aucun gain qu'à part l'économie d'une ligne de code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm2.LoadParams( MonParam1 :TypeParam1; MonParam2 :TypeParam2);
    begin
      MaVariable1 := MonParam1;
      MaVariable2 := MonParam2;
    end;
    Pour appeler form2 a partit d'une autre forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    form2.LoadParams(10,10);// chargement des paramètres
    form2.ShowModal

  18. #18
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut
    À Andnotor. Tout fonctionne, j'ai modifié le code de Create.
    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
    unit Unit2;
     
    {$mode ObjFPC}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
     
    type
     
      { TForm2 }
     
      TForm2 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Label1: TLabel;
        Label2 : TLabel;
        procedure Button2Click(Sender: TObject);
      private
        variable1 : integer;
        variable2 : string;
      public
        Constructor Create(aOwner :TComponent); override;
        Constructor CreateWithParams(aOwner : TComponent; Param1 : Integer; Param2 :string);
      end;
     
    var
      Form2 : TForm2;
     
    implementation
     
    {$R *.lfm}
     
    procedure TForm2.Button2Click(Sender: TObject);
    begin
      Label1.Caption := inttostr(Variable1);
      Label2.Caption := Variable2;
    end;
     
    Constructor TForm2.Create(aOwner :TComponent);
    begin
      inherited;
    end;
     
    Constructor TForm2.CreateWithparams(aOwner : Tcomponent; Param1 : integer; Param2: string);
    Begin
      Create(aOwner);
      Variable1 := Param1;
      Variable2 := Param2;
    End;
     
    end.
    Merci pour ton aide.
    Michel.

  19. #19
    Membre régulier
    Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 117
    Points : 91
    Points
    91
    Par défaut
    À Volid. Merci pour ta réponse. J'ai utilisé ta solution et tout est OK.
    Merci à tous pour votre temps et votre expertise.
    Michel.

  20. #20
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 744
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 744
    Points : 13 303
    Points
    13 303
    Par défaut
    Citation Envoyé par Volid Voir le message
    Pourquoi compliquer les chose alors qu'on peut faire simple et d'une manière naturelle avec une simple méthode pour charger les paramètres de la forme sans toucher au constructeur par défaut qui d'ailleurs n'importe aucun gain qu'à part l'économie d'une ligne de code.
    • A moins que les valeurs par défaut vaillent 0, nil ou chaîne vide, tu seras de toute façon obligé de surcharger le constructeur pour les initialiser.
    • Tu préfères simplifier la classe mais complexifier son utilisation, c'est un choix.


    Mais la vrai question est : à quoi servent ces champs ?

    • S'ils sont nécessaire à la création de l'objet : pas de doute, redéfinition du constructeur.
    • S'ils sont invariables ou que leur variance est exceptionnelle il paraitrait également logique de redéfinir le constructeur (comme dit précédemment pour simplifier l'utilisation de la classe).
    • S'ils varient dans le temps : évidemment une méthode séparée, voire des propriétés.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      Tfrm_MaFiche = Class(TForm)
      private
        FMonParam1 :TypeParam1;
        FMonParam2 :TypeParam2;
      Public
        property MonParam1 :TypeParam1 read FMonParam1 write FMonParam1;
        property MonParam2 :TypeParam2 read FMonParam2 write FMonParam2;
      End;

    Comme souvent il n'y a pas qu'une façon de procéder et le meilleur choix dans un cas ne sera pas forcément le plus pertinent dans un autre.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. passage de paramètre autmatique entre handle de form ?
    Par BuzzLeclaire dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/02/2009, 14h32
  2. Relation entre des form et/ou entre des unités
    Par qhardy dans le forum Débuter
    Réponses: 3
    Dernier message: 25/02/2008, 13h38
  3. lien entre des forms
    Par d1e2w dans le forum C++/CLI
    Réponses: 16
    Dernier message: 31/08/2007, 13h41
  4. Echange de données entre des Windows Forms
    Par vladvad dans le forum Windows Forms
    Réponses: 8
    Dernier message: 30/04/2007, 20h45
  5. Réponses: 7
    Dernier message: 30/12/2004, 12h01

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