Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354

    [VB6] le scroll bar in un frame

    Qualcuno riesce a spiegarmi l'uso delle Scroll Bar?
    ho un Frame che si popola in automatico (quindi non so di preciso quando lungo diventi) e vorrei mettere una scroll bar al suo interno per poter visualizzare tutti gli elementi che vi compaiono.
    ma sinceramente non so da dove partire con le scroll bar.

    qualche aiuto?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    up, nessuno che mi sappia aiutare?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    proprio nessuno che mi sappia aiutare?

    ho provato a cercare sul forum e sulla rete..ma non ho trovato molto, anzi...

    ho capito che devo fare una Picturebox con all'interno una seconda Picturebox e mettere la VScroll fuori dalla prima...ho settato su questa i valori min=0 e max="dimensione max di Picturebox2".

    ma non funziona...non so dove mettere mano...

    qualche aiuto?

  4. #4
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    cosa significa che non funziona?
    hai errori? se si, quali?
    non scorre?
    perchè non posti il codice che hai già scritto?

    Boolean

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    non scorre...anche perchè di codice non ne ho scritto molto...non sapendo da che parte prenderlo...
    è quello il fatto. ho impostato il min e il max...ma nulla...

  6. #6
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    scusami, e credi che la ScrollBar sia "senziente"?

    se non utilizzi gli eventi Change e Scroll per impostare l'altezza della PictureBox interna in base al Value della ScrollBar, non otterrai molto....

    Boolean

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    e questo lo so ...non so come modificare i parametri però

  8. #8
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Originariamente inviato da Boolean
    gli eventi Change e Scroll per impostare l'altezza della PictureBox interna in base al Value della ScrollBar
    mi sembrava chiaro da interpretare...

    tradotto in codice:

    codice:
    Private Sub Form_Load()
    VScrollBar1.Min = 0
    VScrollBar1.Max = PictureInterna.ScaleHeight - PictureEsterna.ScaleHeight
    End Sub
    
    Private Sub VScrollBar1_Scroll()
    PictureInterna.Top = -VscrollBar1.Value
    End Sub
    
    Private Sub VScrollBar1_Change()
    Call VScrollBar1_Scroll
    End Sub
    l'ho scritto direttamente qui, quindi occhio agli eventuali errori di sintassi...

    Boolean

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    Ho capito. Grazie mille.

    Ho provato a metterci mano un attimo e ho scritto questo codice:

    codice:
    Private Sub Form_Load()
    Elementi
    
    'Verifico che l'immagine interna sia superiore o inferiore
    'a quella esterna e abilito/disabilito di conseguenza la scrollbar
    If Picture1.ScaleHeight > Picture2.ScaleHeight Then
        VScrollBar1.Enabled = False
    Else
        VScrollBar1.Min = 0
        VScrollBar1.Max = (Picture2.ScaleHeight - Picture1.ScaleHeight)
    End If
    End Sub
    
    Private Sub VScrollBar1_Scroll()
    Picture2.Top = -VScrollBar1.Value
    End Sub
    
    Private Sub VScrollBar1_Change()
    Call VScrollBar1_Scroll
    End Sub
    
    Private Sub Elementi()
    'Genera in automatico fino a 10 volte una cella textbox
    'in verticale verso il basso e la popola con il valore k.
    'Aumento anche il valore della Picture2 (picture interna)
        Dim n As Integer
        Dim k As Integer
    'significa che voglio aggiungere 10 controlli:
        n = 10
        For k = 1 To (n - 1)
            'carico il nuovo Text1:
            Load codice(codice.Count)
            ' sposto il nuovo Text1 sotto il precedente:
            codice(codice.Count - 1).Move codice(k - 1).Left, codice(k - 1).Top + (codice(k - 1).Height + 50)
                    ' poi li rendo visibili:
            codice(codice.Count - 1).Visible = True
            codice(codice.Count - 1).Text = k
            Picture2.Height = Picture2.Height + 335
        Next k
    End Sub
    Con questo codice semplicissimo il tutto funziona a meraviglia...ossia la picture interna si espande in relazione degli elementi che sono al suo interno (migliorabile sicuramente assegnando il livello Height al valore .Top dell'ultima textbox più un certo valore).
    L'unica cosa che non "funziona bene" è l'indicatore della scrollbar. Ossia se la PictureInterna è inferiore a quella Esterna non ci sono problemi, la ScrollBar viene disabilitata (e comunqeu l'indicatore occupa tutta la Scroll). Invece se la Picture Interna è più grande dell'esterna, l'indicatore si assotiglia del tutto, funzionando senza probleme, ma il passo in cui si muove è minimale.
    Come faccio a far sì che questo sia effettivamente uguale a (altezza picture interna - altezza picture esterna)?

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    Edit istantaneo:

    l'altezza del'indicatore l'ho risolto aumentando a 1000 il LargeChange della ScrollBar.
    e anche il passo con SmallChange.

    Forte...mi trovo problemi e li risolvo subito da solo...forse è meglio che prima smanetto un po' e poi semmai chiedo a voi aiuto...

    Ma gli indicatori Large e Small, con che valori "predefiniti" conviene impostarli?

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.