FAIRE BOUGER LE TITRE DE LA FORM ET CELUI DE LA BARRE DES TÂCHES
fabiin
Messages postés329Date d'inscriptionmercredi 4 avril 2001StatutMembreDernière intervention 8 décembre 2009
-
15 févr. 2002 à 11:56
cs_Loda
Messages postés814Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention30 juillet 2009
-
15 juin 2007 à 09:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Loda
Messages postés814Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention30 juillet 20093 15 juin 2007 à 09:15
salut,
je te propose une version légèrement améliorée:
procedure TfrmExt.DoCaptionScrollStep;
//l'avantage d'une methode (public), c'est que un seul timer peut scroller toute tes captions de toutes tes forms.
var
TextToScroll, s: string;
i : integer;
begin
// inc(fCaptionScrollCount); // un scroll de deux char demande moins de ressource et produit un effet similaire.
inc(fCaptionScrollCount);
if fCaptionScrollCount > length(TextToScroll) then fCaptionScrollCount := 1;
s := Copy(TextToScroll,fCaptionScrollCount,fCaptionScrollLength);
// nb of comming char (<0 if end of string)
i := length(TextToScroll) - (fCaptionScrollCount + fCaptionScrollLength);
if i < 0 then
// add extra char from start of string
s := s + Copy(TextToScroll,1,-i);
Caption := s;
end;
procedure TfrmExt.FormCreate(Sender: TObject);
begin
fCaptionScrollLength := 30; //longeur visible. depend des options de windows
fCaptionScrollCount := 0;
fCaptionText := 'A very very long caption - And more !';
end;
procedure TfrmExt.Timer1Timer(Sender: TObject);
begin
DoCaptionScrollStep;
end;
A+
PS: le timer1.interval dépend du client. Donc cela devrait être un paramètre.
cs_jado
Messages postés25Date d'inscriptionjeudi 18 juillet 2002StatutMembreDernière intervention18 mai 2008 8 août 2002 à 18:34
Vraimment Trop Rapide avec 100 Sur Timer :) Mais cool comme meme :)
cs_commodore
Messages postés20Date d'inscriptionmardi 4 juin 2002StatutMembreDernière intervention 2 octobre 2002 8 août 2002 à 05:24
J'ai essayé aussi avec 100 , c'est impec !
cs_Gysmo
Messages postés209Date d'inscriptionlundi 11 février 2002StatutMembreDernière intervention13 décembre 2002 15 févr. 2002 à 20:37
C cool mais comme fabiin, c trop rapide, avec un interval de 100 sur les timers c deja mieux sur ma becane. Ton source est super!
eedy31
Messages postés63Date d'inscriptionmercredi 23 janvier 2002StatutMembreDernière intervention16 avril 2008 15 févr. 2002 à 12:26
non pourtant je viens de verifier,et sur mon PC c'est tout a fait lisible.Ca doit dépendre des machines..
fabiin
Messages postés329Date d'inscriptionmercredi 4 avril 2001StatutMembreDernière intervention 8 décembre 20096 15 févr. 2002 à 11:56
sympa, mais l'intervalle des timer est vraiment trop court, c illisible :-D
15 juin 2007 à 09:15
je te propose une version légèrement améliorée:
procedure TfrmExt.DoCaptionScrollStep;
//l'avantage d'une methode (public), c'est que un seul timer peut scroller toute tes captions de toutes tes forms.
var
TextToScroll, s: string;
i : integer;
begin
TextToScroll := DupeString(' ',5) + fCaptionText + DupeString(' ',5);
// inc(fCaptionScrollCount); // un scroll de deux char demande moins de ressource et produit un effet similaire.
inc(fCaptionScrollCount);
if fCaptionScrollCount > length(TextToScroll) then fCaptionScrollCount := 1;
s := Copy(TextToScroll,fCaptionScrollCount,fCaptionScrollLength);
// nb of comming char (<0 if end of string)
i := length(TextToScroll) - (fCaptionScrollCount + fCaptionScrollLength);
if i < 0 then
// add extra char from start of string
s := s + Copy(TextToScroll,1,-i);
Caption := s;
end;
procedure TfrmExt.FormCreate(Sender: TObject);
begin
fCaptionScrollLength := 30; //longeur visible. depend des options de windows
fCaptionScrollCount := 0;
fCaptionText := 'A very very long caption - And more !';
end;
procedure TfrmExt.Timer1Timer(Sender: TObject);
begin
DoCaptionScrollStep;
end;
A+
PS: le timer1.interval dépend du client. Donc cela devrait être un paramètre.
8 août 2002 à 18:34
8 août 2002 à 05:24
15 févr. 2002 à 20:37
15 févr. 2002 à 12:26
15 févr. 2002 à 11:56