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

Composants VCL Delphi Discussion :

MaskEdit en parametre d'une procédure


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut MaskEdit en parametre d'une procédure
    hello,

    je voudrais passer en parametre d'une procédure une variable de type MaskEdit.
    qq'un peut-il m'aider ...
    Merci d'avance

    Loci

  2. #2
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 568
    Par défaut
    Salut

    C'est un objet comme un autre, n'oublie cependant pas qu'il sera transmis comme une référence (comme un paramètre var implicite).

    cdlt

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut
    Merci e-ric

    mais j'ai encore une question.

    je n'arrive pas à récupérer les propriétés du MaskEdit , une fois passé en param dans ma procédure.
    Je sais pas si tu vois ce que je veux dire.
    Je voudrais faire un .Text dans ma proc pour mon MaskEdit passé en param.

    loci

  4. #4
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 568
    Par défaut
    Je ne vois pas le problème si tu passes le TMaskEdit en paramètre, mais la condition pour pouvoir accéder directement aux propriétés est que le paramètre formel de ta procédure soit TMaskEdit, sinon tu seras limité par le polymorphisme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure toto(me: TMaskEdit);
    begin
    // No problem
    end;
    Mais :
    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
     
    procedure toto(ctrl: TControl);
    begin
    // les propriétés spécifiques de TMaskEdit
    // ne sont pas accessibles sauf avec un cast:
       TMaskEdit(ctrl).Text := 'Hi man!';
    end; 
    // ou un peu plus propre
    procedure toto_bis(ctrl: TControl);
    begin
    // les propriétés spécifiques de TMaskEdit
    // ne sont pas accessibles sauf avec un cast:
        if Ctrl is TMaskEdit then
            (Ctrl as TMaskEdit).Text := 'Hi man!';
    end;
    le passage par référence, systématique pour les objets en Delphi, fait que l'objet paramètre effectif (l'objet passé en paramètre à l'appel) est bien celui qui est manipulé et non pas une copie de celui-ci.

    cdlt

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut
    merci bcp e-ric

    pb résolu !
    en faite ma procédure était dans une Unité à part... donc je l'ai mise dans l'unité de la form (où il y a mes MaskEdit).
    Et donc le code que tu m'as filé fonctionne !

    alors c'est bon... loci contente
    merci pour ton aide

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

Discussions similaires

  1. Datatable en parametre d'une procédure stocké
    Par smp82 dans le forum Développement
    Réponses: 3
    Dernier message: 16/07/2010, 19h54
  2. [C#]Passage d'un parametre date a une procédure stocké
    Par frans2111 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 28/08/2006, 23h07
  3. Date comme parametre d'une procédure stockée
    Par Access Newbie dans le forum Access
    Réponses: 3
    Dernier message: 21/08/2006, 14h47
  4. Réponses: 2
    Dernier message: 16/03/2006, 13h41

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