Bonjour,
je veux définir une fonction utilisant le résultat d'un événement mais appelée hors de cet événement. Un exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function Foo : integer; begin Result := F() // une fonction des coordonnées d'un clique sur un TImage end;Voila l'implémentation que j'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // utilise la fonction dans un événement quelconque procedure TfmMain.UnBoutonOnClick (Sender: TObject); begin ... plein de choses // on attend le clique souris et on peut tester le résultat quand il a eu lieu if Foo > 100 then quelque chose else autre chose; ... plein de choses end;
Ma question est la suivante : est-ce que c'est de la programmation shadock ou est-ce que c'est légitime ? Est-ce qu'il y a d'autres façons de faire ?
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 var GlobalAttente : boolean; GlobalResult : integer; function Foo : integer; begin GlobalAttente := True; while GlobalAttente do begin Sleep(10); Application.ProcessMessages end; Result := GlobalResult end; procedure TfmMain.MonImageOnMouseDown (Sender: TObject; X, Y : integer); begin GlobalAttente := False; GlobalResult := un traitement quelconque utilisant X et Y end;
Merci de toutes vos remarques.
Partager