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 :

déclaration des variables dans une procédure ou fonction


Sujet :

Delphi

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Points : 98
    Points
    98
    Par défaut déclaration des variables dans une procédure ou fonction
    bonjour
    lorsque j'utilise des objets (tels que listbox ou DateTimePicker) dans une procédure bouton clic ça marche sans problème, mais lorsque je définis ma propre procédure ou fonction comme celle ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function dat():string;
    var datt:string;
       begin
     datt:=datetostr(DateTimePicker1.Date);
    datt[3]:='_';
    datt[6]:='_';
        result:=datt;
    end;
    on me dit que l'objet DateTimePicker1 est non déclaré (de même avec listbox....)

    est ce que je dois déclarer chaque objet ajouté dans la zone "var" du programme?

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Points : 115
    Points
    115
    Par défaut
    Salut,
    Ben dans le cas du OnClick ça fonctionne car tu as sans doute déposé un objet DateTimePicker sur ta fiche et l'objet si tu veux est déclaré sur la fiche.
    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
     
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;
     
    type
      TForm1 = class(TForm)
         DateTimePicker1: TDateTimePicker;  
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
    ...
    procedure TForm1.OnClick(Sender: TObject);
    begin
     
    end;
     
    function dat():string;
    var datt:string;
       begin
     datt:=datetostr(DateTimePicker1.Date);
    datt[3]:='_';
    datt[6]:='_';
        result:=datt;
    end;

    Dans le cas de ta fonction, tu as plusieurs possibilitées. Tu dois soit le déclarer dans le var de ta fonction ou alors le déclaré en variable globale.
    Ou alors tu dois mettre ta fonction dans ton Type TForm1

    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
     
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;
     
    type
      TForm1 = class(TForm)
         DateTimePicker1: TDateTimePicker;  
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
         function dat():string;
      end;
     
    var
      Form1: TForm1;
    ...
    procedure TForm1.OnClick(Sender: TObject);
    begin
     
    end;
     
    function TForm1.dat():string;
    var datt:string;
       begin
     datt:=datetostr(DateTimePicker1.Date);
    datt[3]:='_';
    datt[6]:='_';
        result:=datt;
    end;

  3. #3
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 419
    Points
    1 419
    Par défaut
    ou garder ta fonction tel quel et utiliser Form1.DateTimePicker1

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Points : 98
    Points
    98
    Par défaut
    Merci
    c'est résolu. Mais pourquoi ce

    TForm1.OnClick(Sender: TObject);
    ça marche bien sans le mettre

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Points : 115
    Points
    115
    Par défaut
    heu oui, c'était un exemple comme ça mais petite erreur, ce serait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.DateTimePicker1Click(Sender: TObject);
    begin
     
    end;

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Points : 98
    Points
    98
    Par défaut
    ou garder ta fonction tel quel et utiliser Form1.DateTimePicker1
    tu as raison c plus simple
    Merci pour vos réponses

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 741
    Points : 5 428
    Points
    5 428
    Par défaut
    Ou encore mieux car réutilisable pour n'importe lequel de tes DateTimePicker :
    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
     
    procedure TForm1.DateTimePicker1Click(Sender: TObject);
    var StDate : String;
    begin
       StDate := dat(DateTimePicker1.Date);
       ...
    end;
     
    function dat(UneDate : TDateTime):string;
    var datt:string;
    begin
      datt:=datetostr(UneDate);
      datt[3]:='_';
      datt[6]:='_';
      result:=datt;
    end;

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

Discussions similaires

  1. Déclaration de variables dans une procédure stockée
    Par jbrasselet dans le forum Développement
    Réponses: 5
    Dernier message: 16/02/2009, 09h00
  2. déclaration des variables dans une fonction
    Par kawther dans le forum Débuter
    Réponses: 4
    Dernier message: 22/10/2008, 01h17
  3. [D5] Créer dynamiquement des variables dans une fonction
    Par MelkInarian dans le forum Delphi
    Réponses: 11
    Dernier message: 14/04/2007, 12h16
  4. Réponses: 8
    Dernier message: 03/11/2006, 15h55
  5. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50

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