Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [VB6] Printer - Andare a capo

    ciao ragazzi...

    codice:
    Dim text as string
    
    text = "Ciao...mi chiamo Luigi e studio Ragioneria...ect...ect"
    
    if Printer.TextWidth(text) = Printer.TextWidth(text)\2 then
       'Come faccio per farlo andare a capo??? 
    end if
    
    Printer.Print text
    Praticamente vorrei che quando arriva alla metà della lunghezza del text, va a capo!

    Qualkuno sa come si fa? Grazie...

  2. #2
    Utente di HTML.it L'avatar di Melly
    Registrato dal
    Mar 2003
    Messaggi
    222

    Re: [VB6] Printer - Andare a capo

    Originariamente inviato da hunt
    ciao ragazzi...

    codice:
    Dim text as string
    
    text = "Ciao...mi chiamo Luigi e studio Ragioneria...ect...ect"
    
    if Printer.TextWidth(text) = Printer.TextWidth(text)\2 then
       'Come faccio per farlo andare a capo??? 
    end if
    
    Printer.Print text
    Praticamente vorrei che quando arriva alla metà della lunghezza del text, va a capo!

    Qualkuno sa come si fa? Grazie...
    prova ad aggiungere vblf dove vuoi andare a capo
    Aiutami a ritrovare l’interesse per le piccole cose che sono alla base di tutte le promesse del futuro che cresce, perché sono le sfumature a dare vita ai colori e a farci tornare in mente le cose più pure dei giorni migliori

  3. #3
    Utente di HTML.it L'avatar di buba88
    Registrato dal
    Feb 2004
    Messaggi
    538
    nn ho mai usato l'oggetto printer però penso che per andare a capo basterebbe aggiunger il carattere chr(10)

    text = text & chr(10)

  4. #4
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    Originariamente inviato da buba88
    nn ho mai usato l'oggetto printer però penso che per andare a capo basterebbe aggiunger il carattere chr(10)

    text = text & chr(10)
    Credo vada bene anche vbCrLf no?
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  5. #5
    Utente di HTML.it L'avatar di buba88
    Registrato dal
    Feb 2004
    Messaggi
    538
    x sipher :
    si penso che sia praticamente la stessa cosa

  6. #6
    Il punto non è che nn riesco ad andare a capo, perchè basta fare Printer.CursorY = Printer.CursorY + 250, io vado a capo tranquillamente.

    Il problema sta nel fatto che non so come dirgli al programma di riprendere il testo quando va a capo!

  7. #7

  8. #8

  9. #9
    Ciao,
    il metodo è abbastanza semplice:
    l'obiettivo tuo è soltanto quello di ottenere due stringhe,
    la prima e la seconda metà; una volta ottenute puoi stamparle dove
    vuoi.
    Ecco il codice per ottenere le due stringhe:

    '------
    dim StrApp as string
    dim Index as integer
    dim Stringa1, Stringa2 as string
    For Index = 1 to Len(StringaInput)
    StrApp=StrApp & Mid(StringaInput,Index,1)
    If Printer.TextWidth(StrApp) >= (Printer.TextWidth(StringaInput)/2) Then
    Stringa1=StrApp
    Stringa2=Mid(StringaInput,Index+1,)
    Exit For
    End If
    Next Index
    '-------

    Ovviamente Stringa1 è la prima riga, Stringa2 la seconda.
    Sei costretto ad utilizzare il ciclo FOR perchè ovviamente la lunghezza del testo varia in base al font, non ti puoi quindi basare solo sul numero di caratteri.
    Fammi sapere se funziona
    Ciao
    :adhone:

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.