Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.net] TrackBar
Forum - C# / VB.NET - [VB.net] TrackBar

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 16:15
Lunedì, 17/12/2012
Ciao

Scusate la domanda da neofita.
Sto cercando di costruire un Player con VB.net con VLC.
Dovrei replicare la barra di scorrimento.
Ho inserito una TrackBar e do i valori con AxVLCPlugin21.input.Position.

Il trackbar funziona ma non so come aggiornarlo.
Metto il mio povero script.

Private Sub TrackBar2_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar2.Scroll

        If AxVLCPlugin21.input.Length > 0 Then
            TrackBar2.Minimum = 0
            TrackBar2.Maximum = 100
            TrackBar2.Value = (AxVLCPlugin21.input.Position * 100.0)
        End If

    End Sub


Grazie

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 21:36
Lunedì, 17/12/2012
In che senso aggiornare? Il tuo codice fa questo: quando l'utente muove la barra (TrackBar2.Scroll), a questa viene assegnata la posizione del lettore. Semmai dovrebbe essere il contrario: quando l'utente muove la trackbar, il player dovrebbe spostarsi, quindi dovresti mettere questo
Codice sorgente - presumibilmente Plain Text

  1. AxVLCPlugin21.input.Position = Trackbar2.Value\100


al posto di questo
Codice sorgente - presumibilmente Plain Text

  1. TrackBar2.Value = (AxVLCPlugin21.input.Position * 100.0)


(però non conosco l'activex di vlc quindi non sono sicuro che funzioni, magari c'è da usare qualche metodo per settare la posizione).
Invece per fare avanzare la barra con il lettore dovresti trovare qualche evento ci quest'ultimo che venga generato al cambio di posizione; se non c'è, metti un timer che aggiorna la barra ogni secondo.
Ah, questo
Codice sorgente - presumibilmente Plain Text

  1. TrackBar2.Minimum = 0
  2. TrackBar2.Maximum = 100


non c'è bisogno che lo fai a ogni movimento, basta che imposti le relative proprietà nella finestra di progettazione o al Form_Load.

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 23:13
Lunedì, 17/12/2012
Penso che per "aggiornalo" intenda far incrementare il Value della Trackbar con il Value del video!
Dovresti cercare se c'è una funzione del plugin VLC, ad esempio:

Codice sorgente - presumibilmente VB.NET

  1. Private sub VLC_VideoValue(etc, etc) etc
  2. 'Qui inserisci
  3. Trackbar.value = VLC.output.position
  4. End Sub


PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 12:41
Martedì, 18/12/2012
Ciao
Innanzitutto grazie per la risposta.

Il mio problema è il l'aggiornamento della posizione del Trackbar.
Si aggiorna solo se ci clikko sopra mentre dovrebbe essere aggiornato sempre.
I valori che gli passo sono corretti:

TrackBar2.Value = (AxVLCPlugin21.input.Position * 100.0)

Infatti quando ci clikko sopra prende la giusta posizione.

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 18:40
Martedì, 18/12/2012
Testo quotato

Postato originariamente da fosforo:

Ciao
Innanzitutto grazie per la risposta.

Il mio problema è il l'aggiornamento della posizione del Trackbar.
Si aggiorna solo se ci clikko sopra mentre dovrebbe essere aggiornato sempre.
I valori che gli passo sono corretti:

TrackBar2.Value = (AxVLCPlugin21.input.Position * 100.0)

Infatti quando ci clikko sopra prende la giusta posizione.



Però quel codice non è esatto, facendo così tu dai al trackbar il valore del video quando clicchi sulla trackbak, invece è meglio se usi quello postato da GN!

Quello che usi te, puoi usarlo con un Timer per aggiornare il valore della trackbar con il valore del video!

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 18:55
Martedì, 18/12/2012
Testo quotato

Postato originariamente da LittleHacker:
Puoi usarlo con un Timer per aggiornare il valore della trackbar con il valore del video!


Si intendevo quello, scusate se mi sono spiegato male; dicevo un timer oppure, se il controllo di vlc ha un evento generato al cambio di posizione, di usare quello.

PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 11:35
Giovedì, 20/12/2012
Ciao
Purtroppo non sono cosi avanti
Ho capito perfettamente le cose che mi avete detto e difatti ora controllo il filmato attraverso la TrackBar
Quello che non capisco ancora sono alcune logiche di come funziona VB.

Es:
Ho messo una ProgressBar e passo i dati attraverso il mio script:

Private Sub ProgressBar1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProgressBar1.Click
        ProgressBar1.Value = AxVLCPlugin21.input.Position * 100
    End Sub

Quello che non capisco è come tenere aggiornato il ProgressBar durante il PLAY.
In questo momento per vederlo avanzare devo cliccaerci sopra.

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 20:46
Giovedì, 20/12/2012
Con il tuo codice, la riga
Codice sorgente - presumibilmente Plain Text

  1. ProgressBar1.Value = AxVLCPlugin21.input.Position * 100


viene eseguita quando l'utente clicca la barra, perchè il codice si trova appunto nell'evento ProgressBar1.Click.
Per fare in modo che si aggiorni sempre, quella riga va eseguita a intervalli regolari, ad esempio un secondo. Per fare ciò basta che metti un timer nel form e setti il suo interval (in millisecondi): ogni X millisecondi lui genererà un'evento tick (lo puoi trovare nella scheda eventi, facci doppio clic per generare il relativo codice), è li che devi mettere la riga di codice che aggiorna la progressbar.

PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 10:13
Venerdì, 21/12/2012
Mi scuso se sono cosi impreparato ma sono agli inizi.

Il mio scrpt funziona solo se , mentre la clip è in play, clicco sopra il ProgressBar.
Come se dovessi renderlo attivo tramite un click.

Una volt cliccato il PrograssBar funziona benissimo seguendo il valore passato dal mio script ma il resto delle funzioni e dei pulsanti, PLAY, PAUSE, STOP etc  non funzionano più.

Come se la funzione While prendesse la priorità su tutto il resto dello script.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo