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 :

[d2006]procedure utilisant un paramètre procedure


Sujet :

Langage Delphi

  1. #1
    Membre averti

    Homme Profil pro
    ingénieur, retraité
    Inscrit en
    Février 2007
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur, retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 230
    Points : 332
    Points
    332
    Par défaut [d2006]procedure utilisant un paramètre procedure
    bonjour,

    Dans une unité j'ai une procédure P_DepPCodes dont un des paramétre PrgSelection est un type procedure.
    Une utilisation de cette procédure s'exécute sans problème avec la proc. SelecCodeTr et je l'utilise aussi avec une autre procédure sembable.

    Si je déclare SelecCodeTr private pour éliminer l'utilisation de la var globale FAffich à la compilation j'ai une erreur "E2009 types incompatibles : proc normale et pointeur de méthode".
    J'ai essayé diverses solutions ( Var, @, ^) pour corriger cette erreur sans résultat.
    Pouvez vous en trouver une ? Merci.
    PL


    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
    procedure SelecCodeTr;      // création liste des cpt transfert
    begin
      if not (DepMod.TbCdIDES.AsString = '') then
        if DepMod.TbCdIDES.AsString[1] in ['T','L'] then begin
           FAffich.ListCDtr.Add(DepMod.TbCdCODE.AsString);   // dcl dans cette unité
           FAffich.ListCdLib.Add(DepMod.TbCdLIB.AsString);   //  idem
           FAffich.BCptTrNbZ := False;
           end;
    end;
     
    procedure TFAffich.CptTransFert;          // affichage des comptes transferts
    begin
      LG := 'DEPMENAGE '+TitreCpt+' - COMPTES TRANSFERT - '+ FCreat.Annee;
      Edtot.Visible := True;
      Edtot.Width := 121+250;             //pour aff.totaux / btsuivClic
      BtCodAff.Visible := false;
      P_DepPCodes(lg, Depw+'.dbf', Depw+'cd.dbf', SelecCodeTr);
    end;
     
    procedure TFAffich.P_DepPCodes(Titre, NomWdep, NomWcd : string ;
                                                         PrgSelection : TProcedure);
    begin                                       // utilisé par FAffich et DepInitA
      ...
      ListCDtr := TStringList.Create;         //liste des codes sélectionnés pour aff.
      ListCdLib := TStringList.Create;        //liste des libellés des codes
      BCptTrNbZ := true;
     
      while not DepMOd.TbCD.EOF do
      begin
        PrgSelection;                      // proc sélection des codes à utiliser
        DepMod.TbCd.Next;
      end;
      DepMod.TbCd.Close;
        ...
    end;

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    type
      TInternalProc = procedure of object;
    dans le cas ou tu appel une procedure contenue par un objet.

    Si tu as D2009 ou mieux, une entourloupe et le tour est joué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    type
      TAnyProc = reference to procedure;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  3. #3
    Membre averti

    Homme Profil pro
    ingénieur, retraité
    Inscrit en
    Février 2007
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur, retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 230
    Points : 332
    Points
    332
    Par défaut
    @ Dr Who
    je vous confirme après avoir modifié le type procédure suivant vos indications (D2006) le problème est résolu.
    Merci. PL

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

Discussions similaires

  1. Executer une procedure stockée avec paramètre
    Par SonnyFab dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/08/2010, 12h07
  2. Réponses: 2
    Dernier message: 05/02/2009, 09h04
  3. Réponses: 34
    Dernier message: 03/12/2008, 13h59
  4. Utilisation d'une procedure
    Par Jpa75 dans le forum C
    Réponses: 10
    Dernier message: 17/03/2008, 17h43
  5. paramètre procedure stockée
    Par dieudo dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/02/2008, 08h45

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