Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: ceglar - Settembre 28, 2014, 06:24:25 pm
-
Salve a tutti
Non se se la domanda è banale o meno, ma sinceramente in questo momento ho un vuoto di memoria ...
Domanda:
E possibile centrare il testo?
Printer.Canvas.TextOut(03*X,04*Y, RSTAM.FieldByName('OG01').AsString);
Grazie in anticipo e sperando che la mia mente vecchia e stanca recuperi un po di lucidità
-
non ricordo bene come si chiama ma da qualche parte c'è una funzione che ti ritorna l'ampiezza del testo una volta renderizzato sul canvas
sapendo l'ampiezza del canvas e quella del testo, il gioco è fatto
appena ho modo provo a guardare tra i metodi di TCanvas
-
credo sia questa
..
TheRect := Rect(10,10,100,100);
Form1.Canvas.TextRect(TheRect,10,10,'Hello, world!');
Form1.Canvas.Brush.Color := clBlack;
Form1.Canvas.FrameRect(TheRect);
-
riferimento
http://lazarus-ccr.sourceforge.net/docs/lcl/graphics/tcanvas.html (http://lazarus-ccr.sourceforge.net/docs/lcl/graphics/tcanvas.html)
procedure TextRect(); // Writes Text string within a specified rectangle, according to predefined Style
function TextExtent(); virtual; // TextExtent - returns the total size of the specified text
function TextHeight(); virtual; // TextHeight - returns the height of the specified text
function TextWidth(); virtual; //TextWidth - returns the width of the specified text
TextWidth()
è il metodo che ti interessa
-
Credo proprio che sia quello che cercavo
Grazie Mille
Anche perchè, da quello che sono riuscito a capire ci sono delle differenze (parlo in linea generale di Tprinters) tra Delphi e Lazarus ... O No?
-
Teoricamente non dovrebbero esserci differenza ma, in tutta onestà, non ho mai approfondito :)