Procedure en execution, peut on l'appellé une seconde fois ?
Bonjour a tous,
Voici le bout de code qui m'intrigue !
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
| procedure TTray.Timer1Timer(Sender: TObject);
var SCANINI, SCANPRG: TIniFile; I, J, Sum: Integer; ScanSet: String; VerifDate: Boolean;
DirPar: ShortString;
begin
try
...
......
for I:=1 to Sum do begin
if SCANINI.ReadString('File'+IntToStr(I),'Enabled','Non') = 'Oui' then
begin
.....
........
DirPar:=ExtractFilePath(Application.ExeName);
DirPar:=Copy(DirPar,1,Length(DirPar-8);
if ProcSetting(ExtractFilePath(Application.ExeName)) then
ShowWrn(DirPar,1);
Exit;
end;
end;
...
..........
finally
SCANINI.Free;
end;
end; |
Sachant que ProcSetting est une fonction me retournant un Boolean
Cette fonction est importer d'une DLL, nommé "scfchk.dll".
Sachant que ShowWrn est une procedure importer d'une autre DLL, nommé "scfwrn.dll".
Cette DLL affiche une fenetre générant un rapport dans un TEdit.
Sachant que TTray.Timer1Timer est éxécuté toute les 60 secondes.
Le principe d'éxécution est :
Quand TTray.Timer1Timer est éxécuté celui-ci verifie certaine chose, ensuite si tout a été verifier il me lance la fonction ProcSetting, si elle renvoie True, la fonction me lance la procedure ShowWrn qui affiche une fenetre.
La question que je me pose est :
Est-ce que quand la procedure ShowWrn affiche la fenetre, la procedure TTray.Timer1Timer est toujour active, si oui, empêche telle une autre instance de TTray.Timer1Timer de s'éxécuté ?
Car j'aurai besoin que quand la fenetre s'affiche, que la procedure TTray.Timer1Timer puisse tourner normalement, et me generer d'autre instance de ShowWrn, si oui, est-ce possible ? et comment ?
Merci pour votre aide !