Changement de couleur dans un TEDit

djiga4me Messages postés 15 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 30 mars 2010 - 30 juin 2008 à 19:08
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 1 juil. 2008 à 01:44
J'ai un TEdit géré par deux Timer, l'un deux le met à jour chaque seconde, l'autre, à la demande de l'utilisateur doit changer la couleur de foind du TEdit et la couleur de la police aussi, mais le l'Interval du deucième Timer est de 3000, ce qui fait que les changement de couleurs ne durent que jusqu'à ce que le premier Timer fait un OnTimer (et son travail n'est pas de change les couleurs juste de mettre à jour le texte contenu).
Que puis-je faire pour garder les couleurs un temps voulu plus d'une seconde ? merci.

1 réponse

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
1 juil. 2008 à 01:44
pourquoi 2 timer alors qu'un suffit ?

var
  TimerDelta : cardinal = 0;
  UserDelta : cardinal = 3; // 3 secondes

procedure TForm3.Timer1Timer(Sender: TObject);
const
  TxCs : array[0..2] of TColor = (clBlue, clRed, clGreen);
  GdCs : array[0..2] of TColor = (clBlack, clWhite, clGray);
begin
  inc(TimerDelta);

  { a faire toute les secondes }
  Edit1.Text := format('%d :: %d',[TimerDelta, TimerDelta mod UserDelta]); // Texte qui change

  if (TimerDelta mod UserDelta) = 0 then
  begin
    { a faire toute les X secondes }
    Edit1.Font.Color := TxCs[random(27) mod 3]; // couleur du texte
    Edit1.Color      := GdCs[random(27) mod 3]; // couleur de fond
  end;
end;

<hr size="2" width="100%" />
0
Rejoignez-nous