Usage de la procédure SetTextFormat
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 ?
Code:
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. |
Deuxièmement, voici un exemple qui ne marche pas du tout. Je n'y vois pas d'erreur.
Code:
1 2
| t.text := 'abcdefghijklmnopqrstuvwxyz';
t.setTextFormat(10,6,f2); |
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. :roll: