Datamodule et accès à partir d'une form

cs_manudel Messages postés 63 Date d'inscription lundi 29 avril 2002 Statut Membre Dernière intervention 7 mars 2005 - 2 mai 2002 à 13:17
cs_manudel Messages postés 63 Date d'inscription lundi 29 avril 2002 Statut Membre Derniè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;

4 réponses

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
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.

--- :sleepy) Nono du Moulin :sleepy) ---
0
cs_manudel Messages postés 63 Date d'inscription lundi 29 avril 2002 Statut Membre Derniè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 ?
0
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
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.

--- :sleepy) Nono du Moulin :sleepy) ---
0
cs_manudel Messages postés 63 Date d'inscription lundi 29 avril 2002 Statut Membre Dernière intervention 7 mars 2005
2 mai 2002 à 14:54
Ca marche génial merci.

Le traitement est différent suivant les fiches, parce que les fonctionnalités sont différentes !
0
Rejoignez-nous