hi,
habe immer noch ein Problem RichEdit mit Seitenränder zu drucken. Hir mein Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55:
| procedure TPlayliste.Drucken(sl: TStrings); var zeile, x, y: integer; breite, hoehe, randlinks, randoben: integer; begin
if PrintDialog1.Execute then begin Printer.BeginDoc; //Druckjob beginnen SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); //Umstellen auf 1/10 mm
//Schrift-Einstellungen: Printer.Canvas.Font.Name:='Courier New'; Printer.Canvas.Font.Style:=[fsBold]; Printer.Canvas.Brush.Color:=clWhite; Printer.Canvas.Font.Height:=40; //4 mm
//Blattgöße in 1/10 mm ermitteln: breite:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10; hoehe:=GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE)*10;
randlinks:=100; //2,5 cm randoben:=150; //2,5 cm
x:=randlinks; y:=randoben*-1;
for zeile:=0 to sl.Count-1 do begin
if -y>(hoehe-2*randoben) then begin y:=randoben*-1; Printer.NewPage; end;
if y=-randoben then begin Printer.Canvas.Font.Style:=[fsbold]; Printer.Canvas.TextOut(x, y, ' '+ IntToStr(Printer.PageNumber)); Printer.Canvas.Font.Style:=[]; y:=y-Printer.Canvas.TextHeight(sl[zeile]); end;
Printer.Canvas.TextOut(x, y, sl[zeile]);
y:=y-Printer.Canvas.TextHeight(sl[zeile]);
end; Printer.EndDoc; end; end;
procedure TPlayliste.BitBtn1Click(Sender: TObject); begin Drucken(RichEdit1.Lines); end; end. |
SO weit so gut. Wenn ich drucke und habe ich das Problem das wenn ich das Programm auf einem 17' Monitor zeige und die RichEdit (Playliste) zeige im Vollbild druckt er alles richtig.
BEISPIEL:
Quelltext
1:
| 00001-02 LAUDLS PRÄRIEWIND 03:05 O 3 |
Wenn ich das Bild verkleinere druckt er zwar auch aber er schneidet die Zeile ab und setzt sie eins drunter.
BEISPIEL:
Quelltext
1: 2:
| 00001-02 LAUDLS PRÄRIEWIND 03:05 O 3 |
Wenn ich das Programm auf einem 15' Monitor im Vollbildmodus starte so druckt er wieder mit dem abschneiden der Zeile und setzt dies drunter.
BEISPIEL:
Quelltext
1: 2:
| 00001-02 LAUDLS PRÄRIEWIND 03:05 O 3 |
FRAGE:
Wie krige ich es hin das er die Zeilen egal welcher Monitor immer druckt ohne das Ende abzuschneiden ????
Wie krige ich den ausdruck immer in Fett ???
Sinn des ganzen ist, das wenn ich den Inhalt der RichEdit drucke ein Seitenrand gelassen wird.Damit ich linkes lochen kann und das von oben eine Rand bleibt. Gedruckt werden darf aber bis an den rechten Rand des Blattes.
Komme hier einfach nicht weiter wer kann mir Helfen
Danke schon mal im voraus
Euer
patrick dee
(17.11.02 17:13 Tino) Code-Tags hinzugefügt & Titel geändert.
Glauben heißt nichts wissen ...