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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| procedure Tform1.TimerTimer(Sender: TObject);
var
insertion_carte : boolean;
desinsertion_carte : boolean;
begin
Timer.Enabled := FALSE; // On bloque l'appel du timer
// Nos 2 variables permettant de détecter l'insertion / désinsertion d'une carte
insertion_carte := FALSE;
desinsertion_carte := FALSE;
// Là, tu fais ta lecture de pointeur
pointeur := lecture_pointeur();
// On teste la présence de la carte
if (pointeur = nil) then
begin
// -- le pointeur est nul, y'a pas de carte
if (carte_presente) then // La carte était présente, elle ne l'est plus
desinsertion_carte := TRUE;
carte_presente := FALSE; // Carte_presente est une variable globale de
type booléen
// On reset les contrôles d'affichage UNIQUEMENT à la désinsertion
if (desinsertion_carte) then
begin
Label1.Caption := '';
end;
end
else
begin
// -- Le pointeur n'est pas nul, il y a une carte
if (not carte_presente) then // La carte n'était pas présente, mais maintenant si
insertion_carte := TRUE;
carte_presente := TRUE;
// Ici, comme on vient d'insérer la carte, on appelle la fonction ad hoc
if (insertion_carte) then
procedure_insertion_carte(); // Cette procédure affiche dans tes contrôles le contenu de la carte
end;
Timer.Enabled := TRUE; // On 'oublie pas de relancer le timer pour détecter si la carte est enlevée ou pas!!!
end; |