Sauter une ligne dans un label en fin de mot tout les 60 caractères
Animax77
Messages postés6Date d'inscriptionvendredi 31 octobre 2003StatutMembreDernière intervention21 mai 2005
-
17 juil. 2004 à 17:25
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 2021
-
18 juil. 2004 à 15:11
J'ai créé une base de données access dans laquelle j'ai un mémo, qui peut avoir un texte très long.
Je récupère ce texte dan un dbmemo mais je l'affiche ensuite dans un label, pour sa transparence (je veux voir le fond derrière le texte).
Mon problème, c'est que le label ne va pas tout seul à la ligne (ou alors j'ai pas trouvé).
J'ai donc fais une partie de ma procédure qui fait cette découpe:
tex:=dbmemo1.Text; //tex :string recupère le texte du mémo
k:=0; // pour détecter quand je suis à + de 60 //caractères
l:=0; // pour que soit ne soit pas >1
tex2:=''; // sous chaîne
for j:=1 to length(tex) do
begin
k:=j div 60 -l; // k=1 quand je suis a + de 60 caractère
if ((tex[j]=' ') and (k>0)) then //a + de 60 carac et en fin de mot
begin
tex2:=tex2+copy(tex,length(tex2),j-1)+chr(13)+copy(tex,j+1,length(tex));
// tex2 récupère la chaîne avant, met un saut de ligne, récupère la
//chaîne après
l:=l+1; //k diminue de 1 comme ça
end;
end;
if (tex2='') then tex2:=tex;
texte.Caption:=tex2; //le label prend la valeur de tex2
J'espère avoir mis assez d'anotations pour que ça soit clair
Cette fonction marche très bien pour le premier saut de ligne, mais pour le deuxième, il y a une partie du texte en double à cause de copy(tex,j+1,length(tex)); qui copie tout le reste de la chaîne...
Ce que je voudrais:
trouver une solution à partir de cette fonction en rectifiant ce qui ne va pas
ou d'une autre méthode arriver à sauter des lignes au bout d'un certain nombre de caractères dans un label
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 18 juil. 2004 à 15:11
Si ceux qui posent des question y répondent aussi, on va se faire c..., heu on va s'ennuyer.
C'est sûr, ton texte ne doit pas dépasser une certaine longueur pour tenir dans l'espace alloué au Label. Sinon... c'est la galère.
Bonne prog' :-p