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

    [VB.NET2005] Public Sub

    Ciao a tutti...
    scusate la domanda....
    sicuramente per molti di voi è una stupidata

    semplice cosa...
    ho creato nel frmMain un Sub Public....

    devo utilizzare la stessa Sub sul frmAnagrafica...
    ma nonostante i due form facciano parte dello stesso progetto...
    sul frmAnagrafica non mi viene accettata
    la chiamata alla Sub () che sta sul frmMain..
    devo per caso importare la classe del frmMain??

    ciao e grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Sei stai adoperando l'approccio VB6 nello sviluppo del tuo programma, avrai senz'altro tante altre difficoltà.

    Qualsiasi Sub che inserisci all'interno di un Form diviene un metodo della classe che lo rappresenta.

    Se vuoi richiamare quindi un metodo pubblico (la Sub) di tale Form devi prima crearne un'istanza dichiarando una variabile appartenente al tipo del secondo form e usando la parola chiave New:

    codice:
    ' Dichiarazione della variabile
    Dim ObjForm2 As Form2
    
    ' Creazione dell'oggetto del Form
    ObjForm2 = New Form2()
    
    ' Chiamata del metodo (Sub)
    ObjForm2.MySub()
    
    ' Visualizzazione del Form
    ObjForm2.Show()
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    no no per fortuna nn sono passato da VB6 a Vb.Net...
    ho la mente "vergine" a riguardo...


    grazie cmq .. funziona alla grande...
    anzi ci sarei dovuto arrivare da solo...
    in quanto anche quando richiami un form da un altro form ( per esempio mdiParent )
    devi sempre dichiarare e instanziare la variabile form...

    nn sapevo si utilizzasse questo metodo anche per le sub ...

    grazie veramente

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da ferrate
    no no per fortuna nn sono passato da VB6 a Vb.Net...
    ho la mente "vergine" a riguardo...
    Questo non significa che si possa evitare di documentarsi sulla programmazione ad oggetti e sul funzionamento del .NET Framework, però.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Veramente c'è anche un metodo più semplice. Nel frmAnagrafica, importi il frmMain, prima di ogni altra istruzione con la direttiva Imports, così:
    codice:
    Imports <nomeprogetto>.frmMain
    Public Class frmAnagrafica
      ...
    E dichiari come Shared la procedura che vuoi usare nel frmMain, così:
    codice:
    Public Class frmMain
      ...
      Public Shared Sub Procedura(ByVal Numero As Int16)
        ...
    In questo modo, puoi usare Procedura nel frmAnagrafica senza dichiarare una variabile di tipo frmMain, ma semplicemente usandola come se appartenesse alla stessa form:
    codice:
    Imports <nomeprogetto>.frmMain
    Public Class frmAnagrafica
      ...
      Procedura(34)
      ...

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Il Totem
    Veramente c'è anche un metodo più semplice. [...]
    E' più semplice, ma un metodo statico è diverso da un metodo di istanza... occorre vedere qual è lo scopo del metodo e la condizione in cui viene utilizzato.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Originariamente inviato da alka
    Questo non significa che si possa evitare di documentarsi sulla programmazione ad oggetti e sul funzionamento del .NET Framework, però.

    Ciao!
    guarda.. mi sono sparato un corso VB.NET avanzato...
    non male devo dire... ma la mole di informazioni che ti danno
    in un paio di mesi di corso...è talmente vasta...

    cmq a proposito di documentazione...
    avevo preso in mano appena usicto il VB.NET quello del 2003 per intenderci...
    avevo dato un occhiata per un paio di procedure... alla Msdn...
    era molto + pratica quella... rispetto alla quella rilasciata per 2005...
    nonostante ci siano lievi differenze tra le due versione... ( parlo a livello editor e composizione ).. uso ancora quella del 2003..nonostante abbia iniziato a sviluppare con la versione 05...

  8. #8
    Originariamente inviato da alka
    E' più semplice, ma un metodo statico è diverso da un metodo di istanza... occorre vedere qual è lo scopo del metodo e la condizione in cui viene utilizzato.
    Lui non ha specificato alcunchè al riguardo (e veramente non ha detto di voler visualizzare il form, come hai fatto tu). Quindi ho scritto anche quello che secondo me è più semplice... magari deve riutilizzare la stessa procedura, magari no...

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Il Totem
    Lui non ha specificato alcunchè al riguardo
    Ciò non toglie che è diverso.

    Originariamente inviato da Il Totem
    (e veramente non ha detto di voler visualizzare il form, come hai fatto tu).
    Non ho detto che deve visualizzare il form. L'esempio era - come dice la parola stessa - un puro esempio.

    Originariamente inviato da Il Totem
    Quindi ho scritto anche quello che secondo me è più semplice... magari deve riutilizzare la stessa procedura, magari no...
    Non è più semplice, è semplicemente diverso, sia dal punto di vista logico che pratico.

    Ma poi, qual è la difficoltà maggiore nell'introdurre o meno una parola chiave Static davanti ad un metodo o nel creare un'istanza - cosa che dovrà comunque fare prima o poi, visto che si tratta di un form - per invocarlo? Nessuna.

    Il concetto di "riutilizzo" di un metodo non è chiaro...

    Il tutto gira attorno a ciò che deve essere implementato, ma questo non rende l'uso di un metodo statico più o meno semplice: si tratta solamente di stabilire, a fronte di conoscere il problema da risolvere, quale tipologia di metodo sia quello indicato.

    Se l'analisi del dominio del problema richiede che, a livello di progettazione delle classi, sia necessario un metodo d'istanza per assolvere un compito, non è senz'altro semplice sostituirlo con un metodo statico di classe e non è sensato.

    In sostanza, per dire che si tratta di un metodo più semplice, occorre capire prima ciò che si deve fare. Se un metodo statico è quello che è richiesto, allora è il più semplice, altrimenti no.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  10. #10
    Originariamente inviato da alka
    Ciò non toglie che è diverso.


    Non ho detto che deve visualizzare il form. L'esempio era - come dice la parola stessa - un puro esempio.


    Non è più semplice, è semplicemente diverso, sia dal punto di vista logico che pratico.

    Ma poi, qual è la difficoltà maggiore nell'introdurre o meno una parola chiave Static davanti ad un metodo o nel creare un'istanza - cosa che dovrà comunque fare prima o poi, visto che si tratta di un form - per invocarlo? Nessuna.

    Il concetto di "riutilizzo" di un metodo non è chiaro...

    Il tutto gira attorno a ciò che deve essere implementato, ma questo non rende l'uso di un metodo statico più o meno semplice: si tratta solamente di stabilire, a fronte di conoscere il problema da risolvere, quale tipologia di metodo sia quello indicato.

    Se l'analisi del dominio del problema richiede che, a livello di progettazione delle classi, sia necessario un metodo d'istanza per assolvere un compito, non è senz'altro semplice sostituirlo con un metodo statico di classe e non è sensato.

    In sostanza, per dire che si tratta di un metodo più semplice, occorre capire prima ciò che si deve fare. Se un metodo statico è quello che è richiesto, allora è il più semplice, altrimenti no.
    Veramente io ho scritto 'più semplice, secondo me'. E' soggettivo.

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.