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 :

Passer des paramètres à une procédure TObject


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 478
    Par défaut Passer des paramètres à une procédure TObject
    Bonjour,
    Je souhaite appeler une procédure TObject en lui passant des paramètres.
    La procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.HTMLGridSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    begin
    //...
    end;
    Mon appel (qui ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TForm1.HTMLGridSelectCell(self,j,i,True);
    de manière à utiliser tout le code qui est contenu dans cette procédure dans une boucle...

    Merci pour votre aide
    Phil.

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    bonjour,

    deux erreurs dans cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TForm1.HTMLGridSelectCell(self,j,i,True);
    le préfixe TForm1 ne peut être utilisé que sur une méthode de classe (class procedure), ce qui n'est pas le cas ici.

    le paramètre "CanSelect" est envoyé par adresse (var) il n'est donc pas possible de donner une valeur constante (true)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var
      CanSelect: Boolean;
    begin
      HTMLGridSelectCell(Self, j, i, CanSelect);
    end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 096
    Par défaut
    Et le plus propre serait de faire l'inverse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.HTMLGridSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
    begin
      if Sender is TStringGrid then
        MaMethodeCommune(TStringGrid(Sender), ACol, ARow);
    end;
    au lieu de bidouiller un appel au gestionnaire d'évènement, tu fais un appel à la méthode interne
    Surtout que tu passes Self comme paramètre du Sender alors que cela devrait être HTMLGrid
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for ic := HTMLGrid.FixedCols to HTMLGrid.ColCount - 1 do
      for ir := HTMLGrid.FixedRows to HTMLGrid.RowCount - 1 do
        MaMethodeCommune(HTMLGrid, ic, ir);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure MaMethodeCommune(AGrid: TStringGrid; ACol, ARow: Integer);
    begin
      ... bla bla bla ...
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/04/2010, 13h54
  2. Réponses: 15
    Dernier message: 18/11/2008, 17h41
  3. Réponses: 4
    Dernier message: 05/11/2007, 09h19
  4. Réponses: 1
    Dernier message: 11/08/2007, 17h16
  5. Réponses: 1
    Dernier message: 29/05/2006, 10h04

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