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 :

Modifier le FormCreate ?


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut Modifier le FormCreate ?
    Bonjour,

    Je souhaite ajouter un paramètre à mon FormCreate mais je n'y arrive pas...

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure FormCreate(Sender: TObject;const Identifiant:string);
    [...]
    procedure TFInternet.FormCreate(Sender: TObject; const Identifiant:string);
    begin
     
    end;
    [...]
    Internet := TFInternet.Create
    (nil,FPrincipale.ClientDataSetRecherche.FieldByName('Identifiant').AsString);
    Savez-vous ce qui est mal déclaré ?

    Merci,
    Mathieu

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    en fait le formcreate est une methode assigné a oncreate
    rien a voir avec le creation de la form
    la creation ce fait dans le constructor create comme toutes les class

    je pense que pour faire ce que tu veut il te faut ajoute un evenement doconnect et dodisconnect


    @+ Phil

  3. #3
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Bonjour,

    Ce n'est pas le formCreate qu'il faut modifier. D'ailleurs tu ne le pourra pas.
    Tu doit surcharger le 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
     
    type
      TFInternet = class(TForm)
    ....
      public
       constructor Create(AOwner: TComponent; const Identifiant:string); override;
      end;
    .........
     
    Constructor TFInternet.Create(AOwner: Tcomponent; const Identifiant:string);
    begin
      inherited;
      ...........
    end;
    a+

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut
    Bonjour,

    Merci pour votre aide !

    J'ai l'erreur suivante :
    [Pascal Erreur] MInternet.pas(33): E2037 La déclaration de 'Create' diffère de la déclaration précédente
    Avec ça :
    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
     
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
         constructor Create(AOwner: TComponent; const Identifiant:string); override;
      end;
     
    constructor TFInternet.Create(AOwner: Tcomponent; const Identifiant:string);
    begin
         inherited;
         try
              FPrincipale.ClientDataSetPanel.CommandText := 'SELECT * FROM';
              FPrincipale.ClientDataSetPanel.Active := true;
         except
              on E : Exception do
              begin
                   FPrincipale.Log('SQL : ' + FPrincipale.ClientDataSetPanel.CommandText);
                   FPrincipale.Log(E.Message);
                   MessageDlg(E.Message, mtError, [mbOK], 0);
              end;
         end;     
    end;
    Une dernière question, quand sera exécuté cette procédure ?

    Merci,
    Mathieu

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    dans le create de la form


    @+ Phil

  6. #6
    Membre chevronné Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Par défaut
    Quel interêt à insérer un paramètres dans un événement comme celui-ci ?
    le mieux est de redéfinir la constructeur de TForm en intégrant ta propriété.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public
        { Déclarations publiques }
        constructor Create(AOwner: TComponent; const identifiant:string);  reintroduce;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    constructor TFInternet.Create(AOwner: TComponent; const identifiant:string);
    begin
      inherited
     .../...
    end;

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut
    Bonjour,

    Merci pour votre aide.

    J'ai donc apporté les modifications pour arriver à ça :
    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
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
         constructor Create(AOwner: TComponent; const Identifiant:string); reintroduce;
      end;
    
    implementation
         uses MPrincipale;
    {$R *.dfm}
    
    constructor TFInternet.Create(AOwner: Tcomponent; const Identifiant:string);
    begin
         inherited;
         try
              FPrincipale.ClientDataSetPanel.CommandText := 'SELECT * FROM mpg_BASE WHERE Household ID=' + Identifiant;
              FPrincipale.ClientDataSetPanel.Active := true;
         except
              on E : Exception do
              begin
                   FPrincipale.Log('SQL : ' + FPrincipale.ClientDataSetPanel.CommandText);
                   FPrincipale.Log(E.Message);
                   MessageDlg(E.Message, mtError, [mbOK], 0);
              end;
         end;     
    end;
    J'ai une erreur sur le : inherited
    La voici :
    [Pascal Erreur] MInternet.pas(52): E2008 Types incompatibles
    Merci,
    Mathieu

  8. #8
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inherited Create(AOwner);
    La forme raccourcie ne fonctionne que si les paramètres sont exactement les mêmes.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut
    Bonjour,

    Merci, ça fonctionne à très bien !

    Mathieu

  10. #10
    Membre chevronné Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Par défaut
    il falait écrire le code exactement comme je l'ai donné, "Inherited" est sans ";" a sa fin et ça marche trés bien !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/11/2002, 14h08
  2. [VB6] Zone de liste modifiable basée sur un champ
    Par pepper dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 27/11/2002, 13h41
  3. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h49
  4. [VB6] [MDI] Modifier form en MDIform
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/09/2002, 13h48
  5. Réponses: 5
    Dernier message: 06/08/2002, 20h08

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