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;
Partager