Salut
A-Premiere partie :
procedure TForm1.Timer1Timer(Sender: TObject);
beginTimer1.Enabled:=True;<----- Ne sert à rien
if SortieClgn=1 then begin
SortieClgn:=0;
end
else
begin<----Sert à rienSortieClgn:=1;
end;<----Sert à rienRTS(SortieClgn); (LED1 rouge)
DTR(SortieClgn); (LED2 verte)
end;Ton code est un peu caca

Procedure plus simple
procedure TForm1.Timer1Timer(Sender: TObject);
begin Timer1.Enabled : =False
SortieClg : =Not SortieClg ;//<--SortieClg est un boolean
RTS(SortieClgn); (LED1 rouge)
DTR(SortieClgn); (LED2 verte) Timer1.Enabled : =True; end;Le probleme n'est pas dans le caractere asynchrone ou non d'un timer : Ce que tu cherches à faire s'en lancer les procédures RTS(SortieClgn) et DTR(SortieClgn) en même temps. A cela deux solutions :
1)Solution crade : jouer sur l'interval du Timer. Un interval "important" implique que tu auras le sentiment de voir les deux leds s'allumer en meme temps.
2)Méthode propre : les threads => Je te renvois sur les nombreux tutos / discussions sur le sujet.
B-Seconde partie :
1)Méthode crade
Var
RedToBeViewed : Boolean=True;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled:=False;
RedToBeViewed:=Not RedToBeViewed ;
Case RedToBeViewed Of
False : DTR(SortieClgn);
True : RTS(SortieClgn);
End;
Timer1.Enabled:=True;
end;
2)Méthode propre : les threads
Tchousss