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 :

Utilisation de 2 TForm - Passage


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut Utilisation de 2 TForm - Passage
    Bonjour,

    Je realise un petit programme utilisant 2 TFrom. La Form1 est la form principale. Elle est sensé appeler une from2 au demarrage. Dans la form2 je permet à l'utilisateur de choisir divres paramètres (N° d'un port COM, vitesse de connection...).

    Voici les declarations de ma 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
    43
    44
    45
    46
    47
     
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, AdPacket,
      OoMisc, AdPort, ComCtrls, Grids, Math, Buttons, Unit2;
     
    type
      TForm1 = class(TForm)
        ApdComPort1: TApdComPort;
    [...]
        procedure FormResize(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure ApdDataPacket1Packet(Sender: TObject; Data: Pointer;
          Size: Integer);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    const nbCells = 10;
     
    Type
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
     
    procedure TForm1.FormCreate(Sender: TObject);
    var
      i: integer;
    begin
      //Choix des paramètres COM
      //affichage de la form2
      Application.CreateForm(TForm2, Form2);
      Form2.Show;
      Form2.SetFocus;
    end;
    end.
    Ca ca marche: au demarrage de l'application je vois bien la form2 (declaration ci-dessous)

    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
     
    unit Unit2;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCTrls;
     
    type
      TForm2 = class(TForm)
        ComboBox1: TComboBox;
        Label1: TLabel;
        Label2: TLabel;
        ComboBox2: TComboBox;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form2: TForm2;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm2.Button1Click(Sender: TObject);
    begin
    //  Form1.TEST:=TRUE;
    //  Form1.SetFocus;
      Form1.ApdComPort1.ComNumber:=1; //Ici Form1 n'est pas disponible... si je l'ajoute dans les uses: delcarations circulaires!!!
      Form2.Close;
    end;
     
    end.
    Mon problème est de fermer la form2 en rendant la main à la Form1 d'une part et de modifier des paramètres de la from1(le ApdComPort1.ComNumber par exemple)...

    Toute aide est bienvenue... (j'ai trouver un topic proche sur le forum, mais j'ai beau le lire et le relire, j'avance pas...)

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    implementation
     
    uses Form1; // <<------ ici mets le uses de form1
    {$R *.dfm}
     
    procedure TForm2.Button1Click(Sender: TObject);
    begin
      Form1.ApdComPort1.ComNumber:=1; //Ici Form1 n'est pas disponible... si je l'ajoute dans les uses: delcarations circulaires!!!
      Form2.Close;
    end;
     
    end.
    Voir dans le bout de code ^^

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    il me dit "Fichier introuvable:'Form1.dcu'
    et effectivement y a pas de form.* dans le repertoire du projet...

    C'est pas normal j'imagine, non?

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Desoler mets Unit1 à la place du Form1 (dur dur le lundi )

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    Vi, j'avais tenter ca, mais du coup à la compilation il me dit :
    [Pascal Erreur Faltale] Unit2.pas(7):F2047 Référence d'unité circulaire à 'Unit2'
    Et la je ne sais pas trop quoi en penser...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    Oki, a trouver la reponse dans la FAQ et en plus j'avais mal lu ton post:
    c'est dans la section implementation qu'il faut metre les uses.

    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/08/2014, 22h39
  2. Réponses: 2
    Dernier message: 28/04/2010, 18h59
  3. Réponses: 12
    Dernier message: 05/05/2006, 09h29
  4. Réponses: 6
    Dernier message: 21/06/2005, 21h45
  5. TForm dans une DLL avec utilisation d'Interface
    Par guedelmalin dans le forum Langage
    Réponses: 13
    Dernier message: 17/06/2005, 11h58

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