Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Printerutskrift av flerradig textbox

Postades av 2002-08-08 10:15:37 - Robert Löw, i forum visual basic - allmänt, Tråden har 18 Kommentarer och lästs av 1531 personer

har en textbox som är satt som multiline. Vill skriva ut data som finns i den med printer .print. Det funkar, men problemet är att när en radbrytning sker så skriv texten ut längst till vänster igen. Jag har skrivit på följande sätt:
Printer.Print Tab(10), txtMed

jag vill ha all text tabbad på 10:e kolumnen, hur göra?


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-08 13:59:48 - Andreas Hillqvist

Ändra Scale left för att skapa en marginal. Eller så splitar du upp på rader och skriver ut radvis.


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-08 14:32:32 - Fredrik Salomonsson

Hej.

[Printerutskrift av flerradig textbox]

//fredda



Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-08 18:19:31 - Robert Löw

Har kikat på detta tips, men den säger ifrån på sub SendMessage...


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-08 19:12:53 - Robert Löw

Hur menar du Andreas?

Kan du visa ngt exempel??


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-08 20:22:02 - Andreas Hillqvist

Testa:
<code>
Printer.Print Tab(10), Replace(txtMed, vbCrLf, Tab(10) & vbCrLf)

</code>
Borde nog funka.


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-08 20:57:57 - Robert Löw

Tyvärr funkade inte det heller, ger snart upp...

Expected expression...


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-08 22:19:28 - Sven Åke Persson

Hej
Några synpunkter
Så här bör det till att börja med se ut.

Printer.Print ;Tab(10); Replace(txtMed, vbCrLf, Tab(10) & vbCrLf)

Sven


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-08 23:03:58 - Sven Åke Persson

Igen
För att få riktig kontroll
Dim tmpStr As String
tmpStr = Replace(txtMed.Text, vbCrLf, Tab(10) & vbCrLf)
'undra om man kan skriva så (raden ovan Tab(10)
'testa då att byt ut Tab(10) i raden ovan med Space(10)

Printer.Print ;Tab(10);tmpStr

Sven igen



Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-09 08:58:10 - Robert Löw

Tyvärr funkade inte det heller...


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-09 09:03:56 - Robert Löw

Fick dettta kodexempel som förslag, men programmet säger ifrån på SendMessage, kan vara ngt att spinna vidare på, några förslag någon?

Dim i As Integer
Dim TextLines As Long
Dim TextBuff As String
Dim CharRet As Long


Printer.CurrentY = 2000
' Get number of lines in text box
TextLines = SendMessage(txtList.hwnd, &HBA, 0, 0)
' Extract & print each line in TextBox
For i = 0 To TextLines - 1
TextBuff = Space(1000)
Printer.CurrentX =3000
' Setup buffer for the line!
Mid(TextBuff, 1, 1) = Chr(79 And &HFF)
Mid(TextBuff, 2, 1) = Chr(79 And &H100)
CharRet = SendMessage(txtList.hwnd, &HC4, i, ByVal TextBuff)
Printer.Print Left(TextBuff, CharRet)
Next i


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-09 10:29:43 - Fredrik Salomonsson

Hej.

Ser ut som om deklarationen av SendMessage saknas.
Lägg denna i deklarationsavsnittet på sidan eller i en modul:

Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal Msg As Long, wParam As Any, lParam As Any) As Long

//fredda


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-09 11:38:27 - Sven Åke Persson

Hej Nu måste Vi få ordning på ditt problem
Provkör detta och justera efter behov.

Option Explicit
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Any) As Long

Private Sub Command1_Click()
Dim i As Long
Dim TextLines As Long
Dim TextBuff As String
Dim CharRet As Long
Printer.ScaleMode = 7 'Centimeter
Printer.FontName = "Arial"
Printer.FontSize = 10
' Printer.FontBold = True
Printer.CurrentY = 3 ' Centimeter från toppen justera själv
'******* justera efter behov ********
' Get number of lines in text box
TextLines = SendMessage(txtMed.hwnd, &HBA, 0&, 0&)
' Extract & print each line in TextBox
For i = 0 To TextLines - 1
TextBuff = Space(1000)
Printer.CurrentX = 3 ' Centimeter från vänster justera själv
' Setup buffer for the line!
'Chr$(87) = "W" bredaste bokstaven
Mid(TextBuff, 1, 1) = Chr$(87 And &HFF)
Mid(TextBuff, 2, 1) = Chr$(87 And &H100)
CharRet = SendMessage(txtMed.hwnd, &HC4, i,TextBuff)
Printer.Print Left$(TextBuff, CharRet)
Next i
Printer.EndDoc
End Sub

Och skriv nu inte "Det funkar inte" Tala i stället om vad du
får för felmeddelande eller andra kommentarer så man
förstår vad du vill åstadkomma.

mvh
Sven




Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-09 21:15:34 - Torbjörn Karlberg

Hej Sven
Jag testade ditt förslag eftersom jag själv är rätt intresserad av utsrkifter men får detta felmedelande.
Complite error Type Mismath.

På denna rad (TextLines = SendMessage(txtMed.hwnd, &HBA, 0, 0) på sista nollan.

Mvh
Tobbe


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-09 22:40:01 - Sven Åke Persson

Hej
Oki exemplet är taget från Tips O Trix
Kollade ett exempel som jag har som funkar
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As Any) As Long

Obs ! skall vara ByVal wParam As Long Dvs byt ut deklarationen
mot den här ovan.

TextLines = SendMessage(txtMed.hwnd, &HBA, 0&, 0&)

Under förutsättning att det finns en txtMed som innehåller ett
antal rade så borde detta funka.

nästa SendMessage skall se ut så här
CharRet = SendMessage(txtMed.hwnd, &HC4, i, TextBuff)

och i skall vara Long
Intresserad av ditt resultat.
SendMessage är ett av dom lurigaste API

mvh
Sven


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-09 23:26:37 - Andreas Hillqvist

Om du ska använda API kan du skriva så här:
<code>
Private Const EM_GETLINE = &HC4
Private Const EM_LINEINDEX = &HBB
Private Const EM_LINELENGTH = &HC1
Private Const EM_GETLINECOUNT = &HBA

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Sub PrintTextBox(Textbox As Textbox, Optional Indent As Long)
Dim Text As String
Dim Line As Long
Dim LineCount As Long
Dim LineIndex As Long
Dim LineLength As Long
LineCount = SendMessage(Textbox.hwnd, EM_GETLINECOUNT, 0&, ByVal 0&)
For Line = 0 To LineCount - 1
LineIndex = SendMessage(Textbox.hwnd, EM_LINEINDEX, Line, ByVal 0&)
LineLength = SendMessage(Textbox.hwnd, EM_LINELENGTH, LineIndex, ByVal 0&)
If LineLength Then
Text = Space$(LineLength)
SendMessage Textbox.hwnd, EM_GETLINE, Line, ByVal Text
Printer.Print Tab(Indent); Text
Else
Printer.Print
End If

Next

End Sub


</code>
Eller om du är smart så gör du på det enkla sättet:
<code>
Sub PrintText(Text As String, Optional Indent As Long)
Dim ScaleLeft As Single
ScaleLeft = Printer.ScaleLeft
Printer.ScaleLeft = -Indent
Printer.CurrentX = 0
Printer.Print Text
Printer.ScaleLeft = ScaleLeft
End Sub

</code>
Tänk på att Indent är i printerns ScaleMode. Så du kan använda TextWidth:
<code>
PrintText Text1.Text, Printer.TextWidth(Space(10))
</code>


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-10 10:09:28 - Torbjörn Karlberg

Hej Sven

Efter dinna justeringar funkar det.

/Tobbe


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-10 11:32:46 - Sven Åke Persson

Hej igen
Jag har lagt upp ett exempel i Filarean Programarkivet:API SendMessage Printer
Printer från TextBox typ tidningsspalter.

mvh
Sven


Svara

Sv: Printerutskrift av flerradig textbox

Postades av 2002-08-10 20:00:20 - Robert Löw

Hej alla VB programmerare :-D

Vill bara tala om att till slut så kom det en lsöning på mitt problem som jag är mkt nöjd med. Det var Andreas Hillqvist som skrev en mkt smart lösning. Jg vill härmed tacka SAMTLIGA för all er hjälp i detta till synes enkla problem. Ett speciellt tack till SvenPon för att engagerat dig så i mitt problem....

Detta är ett helt underbart bra forum och jag hoppas att jag ska kunna återgälda den hjälp ni har givit mig i form av hjälp om/när ni kör fast i något problem..

Väl mött!


Svara

Nyligen

  • 20:22 Spel
  • 17:07 Snabb och trevlig webbplats utan l
  • 17:00 Bra spelsajt med bonusar
  • 15:51 Slappna av
  • 15:17 Onlineunderhållning på fritiden
  • 11:13 Online Kasino
  • 17:57 Vart är SEO på väg till 2030?
  • 14:24 CBD regelbundet?

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 665
27 955
271 721
881
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies