Bonjour tlm
je viens demander de l'aide quant à un problème de mémoire la fermeture de mon application... je m'explique:
Je créé un Timer( =>Timer1:= TTimer.Create(nil) ) dans un composant en cliquant sur un bouton qui apparait lorsque mon composant a le focus. Puis à l'évènement OnTimer, selon les conditions de tests, je laisse tourner le timer ou je le libère : Timer.free.
mon soucis est que je n'arrive pas à comprendre pourquoi ici ça ne marche pas... lorsque j'utilise ce timer après un clic sur ce fameux bouton, tout se déroule comme je le souhaite, mais à la fermeture de l'appli, une erreur d'adresse:
Exception EAccessViolation dans le module feuille_test.exe dans FFFFF001.
Violation d'accès à l'adresse 00000001. Lecture de l'adresse 00000001.
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 procedure TMonComposant.BtnClick(sender : TObject); begin inherited; Btn.visible:= false; Btn.ImgClick(self); Timer1:= TTimer.Create(nil); Timer1.Interval:= 600; Timer1.OnTimer:= OnTimer1; Timer1.Enabled:= true; end; procedure TMonComposant.OnTimer1(sender : TObject); begin if (condition1) then Btn.Visible:= false else begin if (self.Focused) then Btn.visible:= true; timer1.Free; end; end;
Voila, j'espère avoir fourni toutes les infos nécessaires pour comprendre mon problème
merci d'avance
ludo
Partager