bonjour t le monde
j'ai une question concérnant la possibilité d'imprimer un text vertical en quickreport :(
mérci
Version imprimable
bonjour t le monde
j'ai une question concérnant la possibilité d'imprimer un text vertical en quickreport :(
mérci
Salut,
... QuickReport : jamais utilisé.Citation:
possibilité d'imprimer un text vertical en quickreport
... Par contre sous Delphi voici un bout de code qui est utilisable pour tracer un texte verticalement ou incliné sur n'importe quel canvas passé en paramètre et où DD est l'angle d'inclinaison en Dixièmes de Degré :
A+ :DCode:
1
2
3
4
5
6
7
8
9
10
11
12 procedure CanvasAffiTexteIncline(C : TCanvas; X,Y: integer; DD : word; S: String); var FonteRec : TLogFont; VieuFonteHandle, // Poignée ancienne fonte NouvFonteHandle : HFONT; // Poignée fonte temporaire begin GetObject(C.Font.handle,SizeOf(FonteRec),Addr(FonteRec)); FonteRec.lfEscapement:=DD; // modif angle NouvFonteHandle:=CreateFontIndirect(FonteRec); // nelle poignée/ancienne VieuFonteHandle:=SelectObject(C.Handle,NouvFonteHandle); //Sauve ancienne C.TextOut(X,Y,S); // Affiche texte NouvFonteHandle:=SelectObject(C.Handle,VieuFonteHandle); // Restitue fonte DeleteObject(NouvFonteHandle); // Del du temporaire end; // CanvasAffiTexteIncline
J'ai essayé ton code Gilbert, ça marche, il y'a cependant un seul problème le texte affiché est vraiment petit je ne sais pas pourquoi, j'ai augmenter la taille de la font mais sans résultat :.Code:C.Font.Size:=14;
Ce problème je le rencontre uniquement avec ta procédure
.Code:CanvasAffiTexteIncline(C,100,100, 900, 'Hello'); //Texte trop petit
Par contre avec un simplej'ai pensé que peut-être que ça serait un problème de résolution, mais j'ai pas pu réglé ça, donc si t'a la solution ça serait bien.Code:Canvas.TextOut(500,500,'Bonjour');// Texte en taille normale
Merci.
Salut,
J'ai testé chez moi avec C.Font.Size:=14; puis 18, puis 22 et ça affiche effectivement en 14, puis 18, puis 22.
Du coup je ne sais pas ce qui se passe chez toi.;)
A+. :D
C'est bon Gilbert j'ai pu réglé le problème que je me suis créé moi-même en fait, lors de l'appel de la procédure j'ai fait :
alors qu'il fallait faire ça :Code:
1
2
3
4 var C:TCanvas; C:=TCanvas.Create; CanvasAffiTexteIncline(C,1000,500, 900, 'Hello');
Apparement le premier Canvas était un autre type de canvas pas celui de l'impression et qui a une résolution différante (plus grande) et c'est ça qui a causé le conflit de taille de la police.Code:CanvasAffiTexteIncline(Printer.Canvas,1000,500, 900, 'Hello');
Merci Gilbert pour ce code très interréssant.