Avatar billede kingyo Nybegynder
13. februar 2007 - 21:50 Der er 1 kommentar og
2 løsninger

Udprint af TextBox

Jeg har en TextBox som indeholder en mængde tekst. Denne vil jeg gerne have udskrevet, hvilket jeg gør således:

    dlgDialog.ShowPrinter
    Printer.ScaleLeft = -0.75 * 1440
    Printer.ScaleTop = -0.75 * 1440
    Printer.CurrentX = 0
    Printer.CurrentY = 0
    Printer.Print txtPrint.Text
    Printer.EndDoc

Jeg har dog et mindre problem: der er ikke wordwrap på teksten når den kommer ud af printeren. Er der en nem måde at omgå dette på?
Avatar billede joern Nybegynder
13. februar 2007 - 23:44 #1
Hej.

Skal det være nemt, vil jeg anbefale at du skriver til en fil, der så med shell åbnes i f.eks. notepad.

Open app.path & "\printfil.txt" for output as #1
    print #1, txtprint.text
close #1

x=shell("notepad.exe " & app.path & "\printfil.txt",1)

Bær over med hvis der er glemt et citationstegn el. lign.
Avatar billede kingyo Nybegynder
14. februar 2007 - 10:27 #2
Jeg tror desværre ikke helt det er hvad jeg har brug for. Jeg er nødt til at kunne klare alt arbejdet fra mit eget program, og ikke have nødt til at åbne det i notepad.

Er der en (evt. sværere) måde som kan klare opgaven for mig?
Avatar billede joern Nybegynder
14. februar 2007 - 13:07 #3
Hej.

Jeg kender ingen anden måde, at at skrive det selv.  Det gjorde jeg for mange år siden i et VB3-program.  Jeg talte 90 tegn ind i filen og derpå "baglæns" til et ordmellemrum.  Dette blev gentaget i en løkke indtil teksten var udskrevet.

Jeg har ikke VB3 installeret mere, men her er sub'en fra den gamle form-fil.    Du kan lade dig inspirere, men jeg vil ikke gå mere ind i spørgsmålet.

Sub knapprint_Click ()
  Dim linie, linie0 As String
  Dim x, Y, z As Integer
  x = 30
  printer.Print ""
  printer.FontName = "Times New Roman"
  printer.FontSize = 12
  printer.Print " "
  printer.Print " "
  printer.FontBold = 1
  printer.Print Space$(x) & "Resultat af søgning efter:  " & kalender.skudaar.Caption & "  d. " & Left$(Now, 14)
  printer.Print Space$(x) & "______________________________________________________________________"
  printer.FontBold = 0
  printer.Print " "
  linie0 = fundet.SelText
         
1 :  If Len(linie0) > 90 Then
          linie = Left$(linie0, 90)
         
          For Y = 90 To 70 Step -1                'funktion for ikke at
            If Mid$(linie, Y, 1) = " " Then      'dele linier midt i et ord
                linie = Left$(linie0, Y)
                Exit For
              End If
          Next
        If Val(Right$(linie1, 1)) > 0 Then x = 38  '??? hvorfor 18/3-97 17:55
        printer.Print Space$(x) & linie
        linie0 = Mid(linie0, Y + 1)
         
        GoTo 1
    End If
        printer.Print Space$(x) & linie0
  printer.EndDoc
End Sub

Sub knapslutsøg_Click ()
  resultat.Visible = False
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester