Von |
Flipidus |
eMail |
|
Am |
24. Juli 2008 um 19:14:28 |
Frage |
Hallo
Ich arbeite immer noch an meinem Notizprogramm und habe von einem Chat-Kontakt einen Drucken-Code bekommen, der sich in einem Modul befindet und über Drucken.Drucken aufgerufen wird
Er Sieht so aus: Option Explicit 'definiert den Abstand vom Blattkopf In cm Const AbstandOben = 1 'definiert den Abstand vom Blattfuss In cm Const AbstandUnten = 1 'definiert den Abstand von der linken Seite In cm Const AbstandLinks = 1 'definiert den Abstand von der rechten Seite In cm Const AbstandRechts = 1 'definiert den Abstand zwischen den einzelnen Objekten Const TextAbstand = 0.1 'definiert die Rahmenart Const RahmenOben = True Const RahmenUnten = True Const RahmenLinks = True Const RahmenRechts = True 'legt fest, ob die Seiten gezählt werden Const SeitenZaehlen = True 'setzt den Zaehler für die Seitenzahlen Dim Seiten As Integer Public Sub Drucken() Dim i As Integer Dim DruckString As String Seiten = 0 'mit cm skalieren Printer.ScaleMode = 7 'Schriftart wählen Printer.Font = "Arial" 'Schriftgröße wählen Printer.FontSize = "12" Call NeueSeite(False) Call Links(Printer.CurrentY, frmNote.Text1.Text) Printer.EndDoc End Sub Private Sub NeueSeite(Newpage As Boolean) If Newpage = True Then Printer.Newpage End If Seiten = Seiten + 1 If RahmenOben = True Then Printer.Line _ (0 + AbstandLinks - TextAbstand, 0 + AbstandOben - _ TextAbstand)-(Printer.ScaleWidth - AbstandRechts + _ TextAbstand, 0 + AbstandOben - TextAbstand) If RahmenUnten = True Then Printer.Line _ (0 + AbstandLinks - TextAbstand, Printer.ScaleHeight - _ AbstandUnten + TextAbstand)-(Printer.ScaleWidth - _ AbstandRechts + TextAbstand, Printer.ScaleHeight - _ AbstandUnten + TextAbstand) If RahmenLinks = True Then Printer.Line _ (0 + AbstandLinks - TextAbstand, 0 + AbstandOben - _ TextAbstand)-(0 + AbstandLinks - TextAbstand, _ Printer.ScaleHeight - AbstandUnten + TextAbstand) If RahmenRechts = True Then Printer.Line _ (Printer.ScaleWidth - AbstandLinks + TextAbstand, 0 + _ AbstandOben - TextAbstand)-(Printer.ScaleWidth - _ AbstandLinks + TextAbstand, Printer.ScaleHeight - _ AbstandUnten + TextAbstand) If SeitenZaehlen = True Then If RahmenUnten = False Then Printer.CurrentY = (Printer.ScaleHeight - AbstandUnten + _ TextAbstand) Printer.CurrentX = (Printer.ScaleWidth - Printer.TextWidth("Flipidus Note 2.1 Ausdruck" + " - Seite " + Str(Seiten))) / 2 Printer.Print "- Seite " + Str(Seiten) + " -" Else Printer.CurrentY = (Printer.ScaleHeight - AbstandUnten + _ TextAbstand + 0.1) Printer.CurrentX = (Printer.ScaleWidth - _ Printer.TextWidth("- Seite " + Str(Seiten) + " -")) / 2 Printer.Print "- Seite " + Str(Seiten) + " -" End If End If Printer.CurrentY = AbstandOben Printer.CurrentX = AbstandLinks End Sub Private Sub Zentriert(Height As Single, strText As String) If Printer.CurrentY + Printer.TextHeight(strText) >= _ Printer.ScaleHeight - AbstandUnten Then Call NeueSeite(True) Height = Printer.CurrentY End If 'hiermit wird der Text auf der X-Kooradinate zentriert 'Schema: Seitenbreite - Textbreite / 2 Printer.CurrentX = (Printer.ScaleWidth - _ Printer.TextWidth(strText)) / 2 Printer.CurrentY = Height Printer.Print strText End Sub Private Sub Rechts(Height As Single, strText As String) If Printer.CurrentY + Printer.TextHeight(strText) >= _ Printer.ScaleHeight - AbstandUnten Then Call NeueSeite(True) Height = Printer.CurrentY End If 'hiermit wird der Text auf der X-Kooradinate zentriert 'Schema: Seitenbreite - Textbreite - AbstandvonRechts Printer.CurrentX = (Printer.ScaleWidth - _ Printer.TextWidth(strText) - AbstandRechts) Printer.CurrentY = Height Printer.Print strText End Sub Private Sub Links(Height As Single, strText As String) If Printer.CurrentY + Printer.TextHeight(strText) >= _ Printer.ScaleHeight - AbstandUnten Then Call NeueSeite(True) Height = Printer.CurrentY End If 'hiermit wird der Text auf der X-Kooradinate zentriert 'Schema: 0 + AbstandvonLinks Printer.CurrentX = (0 + AbstandLinks) Printer.CurrentY = Height Printer.Print strText End Sub Das Problem ist, das sich vom Text immer nur die erste Zeile in den Rahmen anpasst, der Rest beginnt immer ganz links.
Eigentlich würde ich oben drüber auch eine feste Kopfzeile einringen würden, aber dies könnte ich unten beim seitenzähler ebenso einbinden.
MFG: Philipp Kiric |
|