tout le monde,
J'aimerais savoir comment faire défiler un texte du bas vers le haut ou de la droite vers la gauche?
tout le monde,
J'aimerais savoir comment faire défiler un texte du bas vers le haut ou de la droite vers la gauche?
Il suffit de jouer sur les propriété Left et Top du TLabel.
Tu places un Label et un Timer sur la fiche. Tu écris quelque chose dans le label (sinon tu ne verras rien). Et sur l'evenement OnTimer du Timer tu joue sur Top pour faire monter ou descendre le label et sur Left pour défiler vers la gauche ou la droite.
Je te conseil de changer l'intervalle du timer pour que ca soit fluide
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
Est ce que tu parle d'un défilement statique (Le label ne bouge pas, mais le texte défile) ou un défilement dynamique (le label se déplace).
La solution de popo répond au deuxième cas.
En dessin, là tu scrolles un texte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 private { Déclarations privées } y:integer; buff:Tbitmap; procedure projette; public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin position:=poscreencenter; width:=screen.Width; height:=screen.Height; formstyle:=fsstayontop; buff:=Tbitmap.Create; with buff do begin width:=form1.ClientWidth; height:=form1.ClientHeight; end; timer1.interval:=10; end; procedure TForm1.projette; var l:integer; begin with buff.Canvas do begin brush.Color:=clblack; fillrect(clientrect); font.Name:='arial'; font.Color:=clred; font.Style:=[fsbold]; font.Size:=form1.Height div 20; l:=textwidth('Bonne année 2009'); textout(form1.ClientWidth div 2-l div 2,y,'Bonne année 2008'); end; canvas.Draw(0,0,buff); end; procedure TForm1.Timer1Timer(Sender: TObject); begin inc(y); projette; if y=clientheight then y:=0; end; procedure TForm1.FormPaint(Sender: TObject); begin projette; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin buff.Free; end; end.
autre méthode...
ça alors :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TForm1.Timer1Timer(Sender: TObject); Const Saut=1; begin label1.Caption:=Copy(label1.Caption,Saut+1,Length(label1.Caption)-Saut)+Copy(label1.Caption,1,Saut); end;
Partager