Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    [VB6]: Problemi con EasyPrint

    Ciao ragazzi,
    come avete ben capito dal messaggio, utilizzo un metodo di Stampa particolare per stampare "su misura" le text box, ma è la prima volta che mi capita un errore di questo tipo:

    "Privista Matrice!"

    L'errore si focalizza su questo codice che in teoria servirebbe per andare accapo nelle text Multiline:

    Private Function GetLineFromString(strText As String, NumLinea As Long) As String

    Dim Inizio As Long
    Dim strTemp As String
    Dim strLine As String

    strTemp = strText

    For Inizio = 0 To NumLinea
    strLine = ""

    'estrae la linea di testo carattere per carattere
    Do Until (Left(strTemp, 1) = vbCr) Or (Len(strTemp) = 0)
    strLine = strLine & Left(strTemp, 1)
    strTemp = Right(strTemp, Len(strTemp) - 1)
    Loop

    If Inizio = NumLinea Then
    GetLineFromString = Trim(strLine)
    Else
    If Len(strTemp) <> 0 Then
    'elimina il carattere accapo (carriage return)
    If Left(strTemp, 1) = vbCr Then strTemp = Right(strTemp, Len(strTemp) - 1)
    End If

    If Len(strTemp) <> 0 Then
    'elimina eventualmente il carattere line feed (vbLf)
    If Left(strTemp, 1) = vbLf Then strTemp = Right(strTemp, Len(strTemp) - 1)
    End If

    strTemp = Trim(strTemp)
    End If

    Next Inizio

    End Function

    Spero di essermi fatto capire, Claudio

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma l'errore te lo da' nella linea che hai evidenziato?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    Risposta...

    La riga è questa ma l'errore viene evidenziato in Left
    Do Until (Left (strTemp, 1) = vbCr) Or (Len(strTemp) = 0)

    scusa, hai ragione
    Claudio

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prova a scrivere

    Left$

    (con il $ dopo la parola Left)

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    Info

    Ciao Oregon
    ho provato, ma ora mi da questo errore:

    "Errore di compilazione:
    Il carattere di dichiarazione tipo non corrisponde al tipo di dati dichiarato"

    ...grazie claudio

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma il programma e' solamente quello che hai mostrato?

    Probabilmente c'e' un conflitto tra dichiarazioni della variaibile strTemp ... magari ne hai una locale e una globale ...

    Bisognerebbe dare un'occhiata a *tutto* il codice del form ...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    Gli do' un'occhiata

    Grazie in tanto, ti faccio sapere

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    Nulla da fare

    Ho controllato riga per riga il codice del mio programma ma niente da fare, sto diventando matto
    Claudio

  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    dovrai postare il codice per intero.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    OK...

    In Option Explicit
    Dim Pr As New EasyPrint 'istanzio la classe
    Dim Dx As Single 'margine DX
    Dim Sx As Single 'margine SX
    Dim AltCar As Single ' altezza del carattere

    Private Type EsempioLista
    Materiale() As String
    Costo() As Long
    End Type
    Dim ListaMateriale As EsempioLista

    Nel Form:

    Private Sub Stampa_Click()
    Dim Temp As Integer
    Dim x As Integer
    Dim TotPrg1 As Long
    Dim TotPrg2 As Long
    Dim Passo As Single 'distanza tra le righe
    On Error Resume Next
    Call FormatFontDettaglio
    Passo = 0
    TotPrg1 = 0
    TotPrg2 = 0
    With Pr
    Dim Pr As New EasyPrint 'utilizzato per istanzianziare la classe
    Dim Dx As Single 'margine DX
    Dim Sx As Single 'margine SX
    Dim AltCar As Single ' altezza del carattere
    Private Type EsempioLista
    Materiale() As String
    Costo() As Long
    End Type
    Dim ListaMateriale As EsempioLista
    '.PrintPicture Sx, 10, Logo
    .PrintPicture 8, 10, Logo
    'personalizzo le caratteristiche del font
    .FontItalic = False
    .FontName = "Verdana"
    .FontBold = False
    .FontItalic = True
    .FontSize = 8
    .FontName = "Verdana"
    .ForeColor = &HFF0000
    .PrintLeft 12, 50, Label1(60).Caption
    .PrintLeft 45, 60, Text1 .Text 'Text1 è in Multiline = True
    .PrintLeft 45, 60, Text2.Text
    ...
    ...
    ...
    End With
    Pr.EndDoc
    End Sub

    Mentre nella Classe insieme ad altre funzioni:

    Private Function GetLineFromString(strText As String, NumLinea As Long) As String

    Dim Inizio As Long
    Dim strTemp As String
    Dim strLine As String

    strTemp = strText

    For Inizio = 0 To NumLinea
    strLine = ""

    'estrae la linea di testo carattere per carattere ' è in Left e Right che mi da errore
    Do Until (Left (strTemp, 1) = vbCr) Or (Len(strTemp) = 0)
    strLine = strLine & Left (strTemp, 1)
    strTemp = Right (strTemp, Len(strTemp) - 1)
    Loop

    If Inizio = NumLinea Then
    GetLineFromString = Trim(strLine)
    Else
    If Len(strTemp) <> 0 Then
    'elimina il carattere accapo (carriage return)
    If Left(strTemp, 1) = vbCr Then strTemp = Right(strTemp, Len(strTemp) - 1)
    End If

    If Len(strTemp) <> 0 Then
    'elimina eventualmente il carattere line feed (vbLf)
    If Left(strTemp, 1) = vbLf Then strTemp = Right(strTemp, Len(strTemp) - 1)
    End If

    strTemp = Trim(strTemp)
    End If

    Next Inizio

    End Function


    Ciao Claudio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.