Bonjour !
J'ai une ou deux questions sur la procédure SetTextFormat, que je n'arrive pas à utiliser quoiqu'il me semble en avoir compris le principe : appliquer un format à une partie d'un texte.
Premier problème, compte-t-on à partir de 0 ou de 1 ? La question concerne aussi la fonction Pos : est-ce par erreur ou délibérément que la fonction renvoie 0 pour le premier caractère ?
Deuxièmement, voici un exemple qui ne marche pas du tout. Je n'y vois pas d'erreur.
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 { --- extrait de Flash8.pas -------------------------------------------------- type ... TextField = external class ... procedure setTextFormat(beginIndex, endIndex: Number; textFormat: TextFormat); ---------------------------------------------------------------------------- } program setTextFormat1; uses Flash8; {$FRAME_WIDTH 400} {$FRAME_HEIGHT 300} const s = '123456789'; var t: TextField; f1, f2: textFormat; begin f1 := TextFormat.Create('Courier', 16); f2 := TextFormat.Create('Courier', 24); t := TextField.Create(nil, 't', 0, 10, 10, 380, 280); t.setNewTextFormat(f1); t.text := s+Chr(13)+Chr(10)+'Pos(''1'', ''123456789'') = '+IntToStr(Pos('1', s)); t.setTextFormat(3,6,f2); end.
Heureusement il y a une solution de secours avec la propriété html, qui permet d'obtenir le même résultat, mais j'aurais quand même bien voulu savoir si l'autre manière est à abandonner ou non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 t.text := 'abcdefghijklmnopqrstuvwxyz'; t.setTextFormat(10,6,f2);![]()
Partager