Hi,
gibt es wirklich keine einfacherere Alternative zu der selbstgeschriebenen Durckerunit von Teekeks, einen Text mit Canvas rechtsbündig zu drucken?
Ich habe mal wieder seit Tagen in dem Forum gestöbert, Schriftart, Größe, Farbe, Fett,... zu so ziemlich allem habe ich was gefunden zur Druckausrichtung kann ich aber nichts finden. In Delphi genügte eine simple Zeile im Quellcode:
SetTextAlign(Printer.Handle,TA_RIGHT);
gefolgt vom Canvas Textout:
Canvas.TextOut (30,145, 'Hello World');
Das versteht Lazarus so aber nicht. Gibt es in Lazarus wirklich nichts vergleichbares?
Jenseman
Text rechtsbündig drucken ?
Re: Text rechtsbündig drucken ?
Ich habe mal folgendes probiert, was bei mir eigentlich recht gut funktioniert:Weiss aber nicht, ob es das ist, was Du willst?! TextRect grenzt den Druckbereich ein, in diesem ist eine Rechtsorientierung möglich.
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
TS: TTextStyle;
begin
if printDialog.Execute then
begin
printer.BeginDoc;
printer.Canvas.Font.Name := 'Courier New';
printer.Canvas.Font.Size := 10;
printer.Canvas.Font.Color := clBlack;
TS:=Printer.Canvas.TextStyle;
TS.Alignment:=taRightJustify;
printer.Canvas.TextRect(rect(100, 100, 1000, 1000), 100, 100, 'Hallo Welt', TS);
printer.Canvas.TextRect(rect(100, 100, 1000, 1000), 100, 200, 'Hi Welt', TS);
printer.Canvas.TextRect(rect(100, 100, 1000, 1000), 100, 300, 'Hello World', TS);
printer.Canvas.TextRect(rect(100, 100, 1000, 1000), 100, 400, 'Salve', TS);
printer.EndDoc;
end;
end;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 22
- Registriert: Di 19. Okt 2010, 17:23
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Kaiserstuhl
Re: Text rechtsbündig drucken ?
Leider hatte ich mit diesem Problem auch schon zu kämpfen. Ich habe dann einfach über .Canvas.TextWidth() die Textbreite ausrechnen lassen und dann - je nach Textausrichtung LEFT/CENTER/RIGHT - die Position von X/Y für .Canvas.TextOut selber errechnet. Ist zwar zunächst etwas fummelig, dafür funktioniert's aber auch.
Wer mehr denkt hat mehr vom Hirn...
Re: Text rechtsbündig drucken ?
Danke Euch Beiden für die raschen Ideen und die traurige Bestätigung.
Ich hatte sowas nach der umfänglichen Recherche befürchtet. Ja das ist sicher etwas kompakter als die Druckunit,
aber in Formularen und im Rechnungsdruck mit variablen Textinhalten immer noch im Vergleich zu Delphi ein Wahnsinn.
Aber es nützt dann wohl nichts, dann mach ich mich mal ans fröhliche Druckbereiche definieren und Berechnen...
Danke nochmals und einen schönen Abend
Jenseman
Ich hatte sowas nach der umfänglichen Recherche befürchtet. Ja das ist sicher etwas kompakter als die Druckunit,
aber in Formularen und im Rechnungsdruck mit variablen Textinhalten immer noch im Vergleich zu Delphi ein Wahnsinn.
Aber es nützt dann wohl nichts, dann mach ich mich mal ans fröhliche Druckbereiche definieren und Berechnen...
Danke nochmals und einen schönen Abend
Jenseman