Forum: Lazarus (IDE)
by MeierZwoo,
4. Aug 2013
Die umbrochenen Zeilen des Memos sind doch in TMemo.Lines : TStrings; enthalten. Wenn also das Memo proportional auf dem Drucker ausgegeben werden soll (wobei sich der TE mit proportional oder nicht nie so richtig mit sich selbst einig war) reicht es doch:
a) einen Skalierungsfaktor zwischen TMemo-Breite und Drucker-Nutzen-Breite zu ermitteln (Drucker-Nutzen-Breite = druckbarerer Bereich in x,...
Forum: Lazarus (IDE)
by MeierZwoo,
26. Jul 2013
Wo bekommst Du denn diese Werte her? Meine Angabe zu Pica-Punkt beog sich doch auf Deine Frage, wo die 72 herkommen.
Wenn Du einen Text auf eine bestimmte Breite drucken willst, also nicht die Höhe oder Zeichen per Einheit vorgibt, sondern die Breite des Ausdrucks und zwar nur exakt für diesen einen Text, dann kannst Du doch einfach per Einpassen die Schrift setzen.
Alternativ eben auch...
Forum: Lazarus (IDE)
by MeierZwoo,
23. Jul 2013
1 Pica Point = 0,35147 mm = 1/72,27 Inches <commentend>
Forum: Lazarus (IDE)
by MeierZwoo,
23. Jul 2013
Beim Drucker kannst Du auch beides für die Schriftgröße verwenden, Punkt oder Pixel. Das würde ich abhängig machen von der verwendeten Schrift, ob es eine auf Punkt skalierbare Schrift ist oder eine nicht skalierbare Pixelschrift. (Beim Bildschirm dagegen würde ich immer Pixel vorgeben.)
Anmerkung zu meinem ersten Quellcode: Ich verwende einen Gleitkommawert für die...
Forum: Lazarus (IDE)
by MeierZwoo,
23. Jul 2013
weil das das aus dem Verhältnis cm/inch ergibt. Punkt ist nunmal metrisch, dpi wie das i darin schon sagt. per inch.
Forum: Lazarus (IDE)
by MeierZwoo,
23. Jul 2013
Wenn Du Schrifthöhe in Punkt in Drucker-Pixel meinst:
mit
SchriftSize:double; // Schrifthöhe in Punkt
Printer.Canvas.Font.Height := -round(SchriftSize*Printer.Canvas.Font.PixelsPerInch/72); // ->