Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    vb net riferimento a timer

    ho la necessita' di riferirmi ad un timer contenuto in un
    form generico, ma non ci riesco; cerco di spiegarmi meglio

    supponiamo di avere n form FORM1, FORM2, ... nei quali
    e' dichiarato il timer TIMER1;

    anzicche' utilizzare le istruzioni
    If form is FORM1 then timer = FORM1.TIMER1
    If form is FORM2 then timer = FORM2.TIMER1
    ...

    vorrei utilizzare
    dim form as Form = xxxxxx (nome del form)
    timer = form.TIMER1

    ma ottengo l' errore
    TIMER1 non e' un membro di System.Windows.Forms.form

    ho provato anche, senza successo, la seguente forma
    timer=form.controls("TIMER1")

    qualcuno puo' per favore dirmi come fare?
    grazie anticipate

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Un timer contenuto in un form non è visibile da procedure esterne al form stesso.
    Sicuramente non è una buona procedura renderlo visibile dall'esterno, ma comunque si può fare.
    Entra nel tuo form, seleziona il timer, e nelle proprietà modifica il "modifier" che normalmente è impostato a "friend".
    Puoi ad esempio impostarlo su "public" in modo da rendere il tuo oggetto timer visibile anche da fuori la form stessa.

    Sergio

  3. #3
    ciao sirjo
    ti ringrazio per la tua risposta, ma purtroppo non funziona
    gia' nel momento stesso in cui scrivo l' istruzione

    dim form as Form = xxxxxx (nome del form)
    timer = form.TIMER1

    ottengo l' errore
    TIMER1 non e' un membro di System.Windows.Forms.form

    quindi immagino che, idipendentemente dall' impostazione
    di modifier, bisogna usare un codice diverso
    hai qualche altra idea?
    ancora grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Ma il form è stato istanziato ??
    Dal codice non si direbbe, quindi prova con:
    codice:
    dim form as Form = New xxxxxx  (nome  del  form)
    Dim timer = form.TIMER1
    Oppure può essere che hai usato come nome del timer proprio la parola "timer" che non mi ricordo se è una parola riservata oppure no, casomai cambia il nome della variabile

    Scusa, ma l'errore lo ottieni in fase di esecuzione o in fase di compilazione ??

    Sergio

  5. #5
    allora ho usato questo codice

    Dim newForm AsForm = NewGestioneReport
    TimerAttuale = newForm.frmtimer

    ottengo sempre lo stesso errore in fase di compilazione,
    proprio appena scritto il codice

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    ok allora ho capito, se te lo dà già in fase di compilazione (o meglio, fin che lo stai scrivendo) il tuo problema si chiama "associazione tardiva", cioè l'assegnazione di TimerAttuale a newForm.frmtimer non può avvenire in fase di compilazione poichè il compilatore in quel momento non può controllare se effettivamente esiste frmtimer dentro il form newForm (dato che non sa a quale form andrai ad associarlo) e quindi ti dà errore.
    La soluzione più semplice è aggiungere, nello stesso modulo dove usi la riga TimerAttuale = newForm.frmtimer , come prima riga il comando "Option Strict Off" per disabilitare questo tipo di errore in fase di compilazione.

    Sergio

  7. #7
    ciao sirjo
    sono stato fuori e ho visto solo ora la tua risposta
    ti ringrazio davvero per la tua attenzione ma purtroppo
    devo dirti che nemmeno cosi' va

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    hai ragione, ho provato anche io ma non funziona, comunque la cosa a livello di programmazione non ha senso, un timer deve essere interno all'oggetto che lo ha definito, dato che poi richiama eventi che sono dentro il form

    Perchè devi riferirti ad un timer dentro ad un form ??
    Spiega meglio così vediamo di risolvere in altro modo

    Sergio
    Ultima modifica di SirJo; 10-08-2014 a 12:44

  9. #9
    ciao sirjo
    ti dico cosa vorrei fare; in pratica sto cercando di fare una applicazione
    per uso personale composta da due progetti; uno STANDARD che contiene
    tutte le funzioni ripetitive (gestione db, ...) ed uno che ha i menu' propri
    della applicazione; il progetto standard ovviamente non puo' chiamare
    in maniera diretta sub appartenenti a form del progetto personale per cui
    pensavo ad una soluzione del tipo:
    - quando devo avviare una sub scrivo in variabili shared il nome della sub
    ed eventuali parametri
    - quindi attivo un timer che sta appunto nella form contenente il sub
    - questo va a controllare il valore delle variabili ed esegue la sub richiesta
    - quindi si disattiva (timer.stop)

    essendo le form parecchie non vorrei lasciare sempre attivati tanti timer
    perche' penso che portano via risorse

    spero di essere stato chiaro

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Certo che il discorso è un po' contorto.
    Nel progetto "standard" crei delle variabili pubbliche, e quando l'applicazione con i menu chiama il progetto standard utilizza queste variabili per passargli i parametri, che poi il progetto standard utilizzerà per chiamare il programma con i menu

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.