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

    Box Testuale che vada a capo

    Salve a tutti,

    non riesco a trovare il modo per visualizzare un text box dimensionato con diverse linee, che prenda dei campi di un database e li stampi ciascuna per ogni riga.

    In pratica inserendo degli a capo dentro al text box.

    Ps. dal momento che sono neofita vi chiedo gentilmente di usare una terminologia "passo passo"

    grazie!
    «Nella mia carriera ho sbagliato più di novemila tiri. Ho perso quasi trecento partite. Ventisei volte i miei compagni mi hanno affidato il tiro decisivo e l'ho sbagliato. Nella vita ho fallito molte volte. Ed è per questo che alla fine ho vinto tutto» - Michael Jordan

    «Prima ti ignorano, poi ti deridono, poi ti combattono. Poi vinci.» - Gandhi

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Per permettere di visualizzare testo su più linee è necessario impostare la proprietà MultiLine su True.
    L'avanzamento di riga lo realizzi inserendo il corrispondente carattere (vbCrLf), cioè l'avanzamento di riga e ritorno a capo.
    Guarda questo semplice esempio:
    codice:
    Dim Cont1 As Byte
    
    Text1.Text = ""
    For Cont1 = 1 To 4
      Text1.Text = Text1.Text & "Riga " & _
      CStr(Cont1) & vbCrLf
    Next Cont1

  3. #3
    Nuvolari2 non ti avviso più perchè ormai per te sembra essere un'abitudine: vedi di ricordarti di specificare linguaggio e versione nel titolo.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  4. #4
    Mabi, grazie!

    ladyBlu: ?! un' abitudine?! ma se avrò scritto si e no 4 messaggi sul forum di programmazione! Mi sa che ti confondi con qualcun altro... Comunque me ne ricorderò.
    «Nella mia carriera ho sbagliato più di novemila tiri. Ho perso quasi trecento partite. Ventisei volte i miei compagni mi hanno affidato il tiro decisivo e l'ho sbagliato. Nella vita ho fallito molte volte. Ed è per questo che alla fine ho vinto tutto» - Michael Jordan

    «Prima ti ignorano, poi ti deridono, poi ti combattono. Poi vinci.» - Gandhi

  5. #5
    Ok, sono riuscito a fare funzionare il tutto, solo che ora vorrei fare in modo che il campo text multilinea visualizzi sempre l'ultima parte del testo, e non sempre l'inizio.

    In pratica ora come ora il testo riempie il text box, con la barra di scorrimento. Ma rimane sempre sulle prime linee del testo a meno che non si scorra con la scroll bar.

    Vorrei fare in modo che invece di visualizzare le prime linee, visualizzasse sempre le ultime scritte (usando la scroll bar, al massimo, per tornare verso l'alto)


    Come posso fare?

    «Nella mia carriera ho sbagliato più di novemila tiri. Ho perso quasi trecento partite. Ventisei volte i miei compagni mi hanno affidato il tiro decisivo e l'ho sbagliato. Nella vita ho fallito molte volte. Ed è per questo che alla fine ho vinto tutto» - Michael Jordan

    «Prima ti ignorano, poi ti deridono, poi ti combattono. Poi vinci.» - Gandhi

  6. #6
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Per muovere da programma la scrollbar devi usare la SendMessage.
    La dichiari così:
    codice:
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As _
    Integer, ByVal lParam As Any) As Long
    
    Const EM_LINESCROLL = &HB6
    e già che ci sei inserisci l'apposita costante.
    Quindi, ti basta richiamarla ogni volta che ti serve:
    codice:
    Dim Cont1 As Byte
    
    Text1.Text = ""
    For Cont1 = 1 To 15
      Text1.Text = Text1.Text & "Riga " & _
      CStr(Cont1) & vbCrLf
      SendMessage Text1.hwnd, EM_LINESCROLL, 0&, 6& '(15-10)+1
    Next Cont1
    Ciao

  7. #7
    Ok, grazie!

    Funziona tutto benone.

    Unica domanda, per curiosità:

    riguarda la linea:
    SendMessage Text1.hwnd, EM_LINESCROLL, 0&, 6& '(15-10)+1


    da quello che ho capito la costante EM_LINESCROLL indica il tipo di azione (line scroll), mentre non ho capito i due successivi valori 0& e 6& che cosa indicano rispettivamente...


    Grazie ancora!
    «Nella mia carriera ho sbagliato più di novemila tiri. Ho perso quasi trecento partite. Ventisei volte i miei compagni mi hanno affidato il tiro decisivo e l'ho sbagliato. Nella vita ho fallito molte volte. Ed è per questo che alla fine ho vinto tutto» - Michael Jordan

    «Prima ti ignorano, poi ti deridono, poi ti combattono. Poi vinci.» - Gandhi

  8. #8
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Originariamente inviato da Nuvolari2
    ...da quello che ho capito la costante EM_LINESCROLL indica il tipo di azione (line scroll)...
    Esattamente. La SendMessage viene usata molto e per diverse funzioni.
    La costante indica proprio il messaggio da trasmettere.
    Gli ultimi due parametri, in queso caso, indicano il numero di caratteri orizzontali e il numero di linee verticali da considerare per lo spostamento.

    Io ho scritto 6 (linee) perchè ho usato una TextBox di 10 righe.

  9. #9
    scusate anche io ho provato questo esempio ma a me in questo modo scorre sempre alla fine, ovvero scroll verticale fino in basso (e va bene!) mentre scroll orizzontale fino a destra (e NON va bene)

    io vorrei che mi scrollassa soltanto in verticale mantenendo fisso tutto a sinistra lo scroll orizzontale...

    ho provato ha modificare la chiamata ma niente...

    come posso fare??? grazie dell'aiuto...
    Let's your dream came true!

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.