Tcanvas texte vertical

Résolu
wistiticdj Messages postés 1 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 9 août 2006 - 9 août 2006 à 13:57
cs_jfs59 Messages postés 178 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 2 février 2010 - 9 août 2006 à 17:13
J'aimerai écrire dans Tcanvas avec par exemple la fonction textout ou autre un texte vertical.  Je n'ai trouvé que la possibilité d'en faire des horizontaux.

Qulqu'un a une idée ?

Wistiti

1 réponse

cs_jfs59 Messages postés 178 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 2 février 2010
9 août 2006 à 17:13
T'as pas du chercher longtemps ..
un petit exemple de ce qu'on trouve en moins de 10 secondes ...

procedure AngleTextOut(CV: TCanvas; const sText: String; x, y, angle:integer);
var
LogFont: TLogFont;
SaveFont: TFont;
begin
{Sauvegarde de la fonte en cours du canvas}
SaveFont := TFont.Create;
SaveFont.Assign(CV.Font);
{Récupération des détails de la fonte dans la structure LogFont}
GetObject(SaveFont.Handle, sizeof(TLogFont), @LogFont);
{Modification à notre guise de l'orientation de la la fonte}
with LogFont do
begin
lfEscapement := angle * 10;
lfPitchAndFamily := FIXED_PITCH or FF_DONTCARE;
end; {with}
{ Création de la fonte par CreateFontIndirect en se basant sur la structure }
{ LogFont et assignation à la fonte du canvas}
CV.Font.Handle := CreateFontIndirect(LogFont);
SetBkMode(CV.Handle, TRANSPARENT);
{Ecriture du texte avec l'inclinaison voulue}
CV.TextOut(x, y, sText);
{On redonne au canvas sa fonte sauvegardée pour lui redonner son état initial}
CV.Font.Assign(SaveFont);
SaveFont.Free;
end;

Cordialement jfs.
<hr size="2" width="100%" />
Tout est en tout et réciproquement ...
3