cs_manudel
Messages postés63Date d'inscriptionlundi 29 avril 2002StatutMembreDernière intervention 7 mars 2005
-
2 mai 2002 à 13:17
cs_manudel
Messages postés63Date d'inscriptionlundi 29 avril 2002StatutMembreDernière intervention 7 mars 2005
-
2 mai 2002 à 14:54
Voilà, je voudrais avoir accès aux événements des objets figurant sur mon datamodule, mais je n'y arrive pas.
J'ai l'erreur suivante : "le type de l'expression doit être boolean".
Comment faire ?
procedure TMaForm.Toto(DataSet: TDataSet);
begin
if datamodule1.Table1BeforePost(datamodule1.datasource1.Dataset) then
begin
//
end
else
begin
//
end;
end;
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 2 mai 2002 à 13:50
Heu, oui bon : ce n'est pas comme ça qu'on utilise un évènement. Il faut écrire le code dans le module de données :
procedure TDataModule2.Table1BeforePost(DataSet: TDataSet);
begin
//.... code avant post
end;
Bien que les évènement soient aussi des méthodes, il rare qu'il soit utile des appeler directement. Et dans ce cas ils doivent toujours être appelés comme des procédures et non des fonctions.
cs_manudel
Messages postés63Date d'inscriptionlundi 29 avril 2002StatutMembreDernière intervention 7 mars 2005 2 mai 2002 à 14:19
Le problème est que j'ai plusieurs fiches, qui font appel aux mêmes tables.
Imaginons que j'ai codé sur mon datamodule pour ma fiche 1, le code va s'exécuter aussi sur ma fiche 2, alors que je n'ai rien demandé.
Comment dire que on exécute le code du datamodule, si on est sur telle ou telle fiche ?
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 2 mai 2002 à 14:29
Utilise alors Screen.ActiveForm pour déterminer la fiche active au moment du BeforePost :
If Screen.ActiveForm=Form1 Then...
If Screen.ActiveForm=Form2 Then...
Mais il me semble bizarre que le traitement ai besoin d'être différent d'une fiche à l'autre.