[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:
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; |