elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 2016
-
10 mars 2006 à 12:29
Pollux84
Messages postés15Date d'inscriptionlundi 1 septembre 2003StatutMembreDernière intervention15 février 2009
-
3 mai 2007 à 22:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Pollux84
Messages postés15Date d'inscriptionlundi 1 septembre 2003StatutMembreDernière intervention15 février 2009 3 mai 2007 à 22:17
Merci pour les sources, effectivement le code de foxi lag moin (merci). Néanmoins je ne crache pas sur ta source, j'ai récement vu un programme dans lequel la fonction que tu réalise en 10 lignes tien en 50 / 60 lignes ...
Merci
kam_2006
Messages postés49Date d'inscriptionvendredi 13 janvier 2006StatutMembreDernière intervention29 novembre 2010 10 mars 2006 à 23:01
Bonsoir
je suis bien d'accord avec la souce de F0XI
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 10 mars 2006 à 21:13
bof bof bof ... pas trés aboutis tout cela ...
comme l'a dit Elguevel, y'a des effets simple et de rendus meilleur.
Var
Direction : TScrollDir = sdRTL;
Speed : integer = 1;
FPSTimer : 1..25 = 20;
>>>>> Init (FormCreate):
Panel1.doublebuffered := true;
>>>>> Lancement/Arret (Button1Click) :
if not Timer1.Enabled then begin
Button1.Caption := 'Stop';
Timer1.Interval := 1000 div FPSTimer;
label1.Caption := 'ceci est une petite animation';
case Direction of
sdRTL,sdLTR : Label1.top := (Panel1.Height div 2) - (Label1.Height div 2);
sdUTD,sdDTU : Label1.Left := (Panel1.Width div 2) - (Label1.Width div 2);
end;
case Direction of
sdRTL : label1.Left := Panel1.Width + 2;
sdLTR : Label1.Left := -Label1.Width - 2;
sdUTD : Label1.Top := -Label1.Height - 2;
sdDTU : Label1.Top := Panel1.Height + 2;
end;
label1.Visible := true;
timer1.enabled := true;
end else begin
label1.Visible := false;
timer1.enabled := false;
Button1.Caption := 'Start';
end;
Combobox1.enable := not Timer1.Enabled;
>>>> Animation (Timer1Timer) :
case Direction of
sdRTL : begin
Label1.Left := Label1.Left - 1;
if label1.Left + label1.Width + 2 < 0 then label1.Left := panel1.Width + 2;
end;
sdLTR : begin
Label1.Left := Label1.Left + 1;
if label1.Left > panel1.Width + 2 then label1.Left := -label1.Width - 2;
end;
sdUTD : begin
Label1.top := Label1.top + 1;
if label1.Top > Panel1.Height + 2 then label1.Top := -label1.Height - 2;
end;
sdDTU : begin
Label1.top := Label1.top - 1;
if label1.Top + label1.Height + 2 < 0 then label1.Top := panel1.Height + 2;
end;
end;
>>>>> Changement de direction (ComboBox1Change) :
Direction := TScrollDirection(Combobox1.ItemIndex);
_________________________________________________
et voila comment faire un joli scroll multi-direction...
djfeeler
Messages postés18Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 2 juin 2006 10 mars 2006 à 15:42
merci je vais corriger !!!
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 10 mars 2006 à 12:29
Cà lague un peu et la méthode est un peu lourde (trop de calculs).
Je te conseil de remplacer tout ce qui se trouve dans le timer par :
------------
label1.Left := label1.Left - 1;
if (label1.Left + label1.Width) = 0 then label1.Left := Form1.Width -label1.Width;
------------
Sinon met ta phrase dans un panel, c'est plus jolie.
Tient un programme que j'ai fait qui illustrer cet exemple :
3 mai 2007 à 22:17
Merci
10 mars 2006 à 23:01
je suis bien d'accord avec la souce de F0XI
10 mars 2006 à 21:13
comme l'a dit Elguevel, y'a des effets simple et de rendus meilleur.
_________________________________________________
>>>>> Composants sur fiche (conception) :
TPanel (Panel1; Caption = '' )
TLabel (Label1; enfant de Panel1; Caption ''; AutoSize True; Visible = false)
TButton (Button1; Caption = 'Start' )
TCombobox (ComboBox1; Items 'RTL','LTR','UTD','DTU'; ItemIndex 0)
TTimer (Timer1; Interval 50; Enabled false)
>>>>> Types :
Type
TScrollDir = (sdRTL,sdLTR,sdUTD,sdDTU);
>>>>> Vars :
Var
Direction : TScrollDir = sdRTL;
Speed : integer = 1;
FPSTimer : 1..25 = 20;
>>>>> Init (FormCreate):
Panel1.doublebuffered := true;
>>>>> Lancement/Arret (Button1Click) :
if not Timer1.Enabled then begin
Button1.Caption := 'Stop';
Timer1.Interval := 1000 div FPSTimer;
label1.Caption := 'ceci est une petite animation';
case Direction of
sdRTL,sdLTR : Label1.top := (Panel1.Height div 2) - (Label1.Height div 2);
sdUTD,sdDTU : Label1.Left := (Panel1.Width div 2) - (Label1.Width div 2);
end;
case Direction of
sdRTL : label1.Left := Panel1.Width + 2;
sdLTR : Label1.Left := -Label1.Width - 2;
sdUTD : Label1.Top := -Label1.Height - 2;
sdDTU : Label1.Top := Panel1.Height + 2;
end;
label1.Visible := true;
timer1.enabled := true;
end else begin
label1.Visible := false;
timer1.enabled := false;
Button1.Caption := 'Start';
end;
Combobox1.enable := not Timer1.Enabled;
>>>> Animation (Timer1Timer) :
case Direction of
sdRTL : begin
Label1.Left := Label1.Left - 1;
if label1.Left + label1.Width + 2 < 0 then label1.Left := panel1.Width + 2;
end;
sdLTR : begin
Label1.Left := Label1.Left + 1;
if label1.Left > panel1.Width + 2 then label1.Left := -label1.Width - 2;
end;
sdUTD : begin
Label1.top := Label1.top + 1;
if label1.Top > Panel1.Height + 2 then label1.Top := -label1.Height - 2;
end;
sdDTU : begin
Label1.top := Label1.top - 1;
if label1.Top + label1.Height + 2 < 0 then label1.Top := panel1.Height + 2;
end;
end;
>>>>> Changement de direction (ComboBox1Change) :
Direction := TScrollDirection(Combobox1.ItemIndex);
_________________________________________________
et voila comment faire un joli scroll multi-direction...
10 mars 2006 à 15:42
10 mars 2006 à 12:29
Je te conseil de remplacer tout ce qui se trouve dans le timer par :
------------
label1.Left := label1.Left - 1;
if (label1.Left + label1.Width) = 0 then label1.Left := Form1.Width -label1.Width;
------------
Sinon met ta phrase dans un panel, c'est plus jolie.
Tient un programme que j'ai fait qui illustrer cet exemple :
http://elguevel.free.fr/download/cleanup.zip
PS : J'ai pas mis de note, j'attend que tu corrige tout çà :-)
Aller Bon Code.
@+