Thema: Delphi Drucken im Netzwerk

Einzelnen Beitrag anzeigen

Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#14

Re: Drucken im Netzwerk

  Alt 17. Dez 2004, 11:27
Zitat von _HAWK_:
ich habs jetzt mal wie gesagt mit printer versucht
Code:
          printer.PrinterIndex:=-1;
          printer.BeginDoc;
          printer.Canvas.TextOut(0,0, 'test1' );
          printer.Canvas.TextOut(0,0, 'test2' );
          printer.EndDoc;
Das Problem ist nur, dass mir die zwei texte ... nicht, wie ich es eigentlich will, untereinander
Hi,

die ersten beiden Parameter von TCanvas.TextOut geben den Anfangspunkt an. Wenn Du 2 Text an die gleiche Stelle schreibst, können sie wohl nicht untereinander sein

Über TCanvas.TextHeight erhälst Du die Zeilenhöhe des Textes, den Du ausgeben möchtest. Mit dieser Information kannst Du die Y-Position der nächsten Zeile bestimmen.
Hier mal ein kleines Beispiel:
Delphi-Quellcode:
VAR
  SL : Tstringlist;
  i,dy : integer;
BEGIN
  Printer.BeginDoc;
  SL := TStringList.Create;
  sl.Add('Test 1');
  sl.Add('Test 2');
  sl.Add('Test 3');
  dy := round(Printer.Canvas.TextHeight(SL[0])*1.2); // Texthöhe + Zwischenraum
  FOR i:=0 TO SL.Count -1 DO
  BEGIN
    Printer.Canvas.TextOut(50, // X: Linker Rand
                           i*dy, // Y: Zeile*Zeilenhöhe
                           SL[i]); // Text
  END;
  FreeAndNil(SL);
  Printer.EndDoc;
END;
PS: Warum einfach wenns auch umständlich geht

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat