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

    [VB.NET] Chiudere un Form a scomparsa verticalmente

    Ciao a tutti da Maurizio
    Vi scrivo in quanto sono alle prime armi con il mio nuovo pacchetto di programmazione Visual Studio 2022

    Ora il mio problema e questo : Io ho inserito in un Form due pulsanti e una una Label
    Ora lo scopo di questo progetto sarebbe quella di premere uno dei due pulsanti (Button) e da programma Il form1 si dovrebbe chiudere in senso Verticale molto lentamente.
    Io di mio ho provato a scrivere questo codice :
    codice:
    Imports System.Threading
    
    
    Public Class Form1
    
    
        Declare Sub Sleep Lib "kernel32" (dwMilliseconds As Long)
    
    
        Private Const V As Integer = -1
        Dim I
    
    
        Private Sub NewMethod1()
    
    
    #Enable Warning IDE0051 ' Rimuovi i membri privati inutilizzati
            Throw New NotImplementedException()
            NewMethod1()
            Sleep()
        End Sub
    
    
        Private Sub NewMethod()
            DoEvents()
        End Sub
    
    
        Private Sub Sleep()
            Throw New NotImplementedException()
        End Sub
    
    
        Private Sub DoEvents()
            Throw New NotImplementedException()
        End Sub
    
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        End Sub
    
    
        Public Function GetV() As Object
            Return V
        End Function
    
    
        Sub Chiudi_In_Modo_Vert(v As Object)
    
    
            I = Me.Label1.Text & ""
    
    
            For I = Me.Height To v
                Me.Height = I
                Me.Height = Me.Height - 1
                DoEvents()
    
    
                Me.Label1.Text = Me.Height & 0
                Thread.Sleep(1)
                End
            Next I
    
    
        End Sub
    
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    
    
            Call Chiudi_In_Modo_Vert(GetV())
        End Sub
    
    
    End Class
    Ma pur non dandomi nessun errore apparente
    Il Form non di muove di una virgola.
    Potete voi darmi una dritta per risolvere questo problema Grazie
    Saluti da Maurizio
    A.Maury1704

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Vi scrivo in quanto sono alle prime armi con il mio nuovo pacchetto di programmazione Visual Studio 2022
    Le domande su VB.NET e i linguaggi del .NET Framework in generale hanno un'area apposita: ho spostato la discussione.

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Ma pur non dandomi nessun errore apparente
    Il Form non di muove di una virgola.
    Direi che è plausibile, visto che il codice - oltre a essere "disordinato" - è pieno di elementi fuorvianti e che non hanno un ruolo apparente.

    Per dire, tu parlavi di Timer nel titolo originale, ma non ne fai uso.
    Poi hai una importazione dell'API di Windows Sleep(), che poi non viene utilizzata.

    All'interno della funzione che dovrebbe "chiudere gradualmente" il form, fai un ciclo usando una variabile "V" che è una costante intera (Integer) e che leggi con una chiamata a GetV() che invece fa riferimento a un Object e non serve a nulla (tanto vale passare -1 alla funzione oppure usare direttamente la costante all'interno di essa).

    C'è poi una variabile "I" che nella funzione cambia ruolo: viene dichiarata senza tipo, poi prende un valore stringa da Label1.Text (non si sa perché), poi il suo valore viene cambiato di nuovo poiché si tratta della variabile con cui viene fatto il ciclo For I = Me.Height To v, che quindi dovrebbe incrementare il valore di "I" di una unità fino ad arrivare al valore di "V", che è "-1" (condizione impossibile), quindi Height viene incrementata ma subito dopo c'è la Me.Height - 1 che la riporta al valore iniziale.

    Segue un mix di DoEvents() e Thread.Sleep() e una riassegnazione del testo della Label per qualche strano motivo, mettendo in congiunzione il valore di Me.Height in AND con zero (che darà sempre zero).

    Insomma, sembra che siano state prese istruzioni a caso di Visual Basic e siano state assemblate in modo confusionario riproducendo una logica impossibile da estrapolare: che il risultato desiderato non si presenti credi sia scontato, ma è ancora più stupefacente che non dia un errore.

    La soluzione direi che è semplice: rivedi completamente la logica che hai scritto, e implementala in modo che abbia un senso, rileggendo il codice e spiegando nella tua mente o a voce alta ciò che fa ogni istruzioni e verificando se coincide o meno con quello che ti aspetti di ottenere.

    Andando a tentoni, o ancora peggio a caso, sarà ben difficile ottenere qualcosa che funzioni come si deve, o comunque non è l'approccio adatto da seguire.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Ciao alka Piacere di fare la tua conoscenza
    Ascolta : Tu hai ragione da vendere nel dire quanto descritto da te nei miei confronti
    Però ci terrei a precisare un paio di cose :

    1) Quanto riportato da me Funziona benissimo se lo inserisco in un Userform di Excel e ancora meglio se lo adatto al VB6.0

    Il problema e che da quando ho dovuto cambiare pc
    Passando dai 32 bit hai 64 bit il vb6.0 non e più disponibile
    Pertanto a mio malgrado sono dovuto passare dal VB6.0 al VBA e poi successivamente al Visual Studio 2022
    Tutto ciò mi ha penalizzato molto , perché i programmi precedenti tolto via il vba mi davano soddisfazioni immense
    Ora con questo nuovo programma trovo tutto molto più difficile nel voler fare anche solo le cose più banali.

    2) capisco da me che riprendere i miei vecchi progetti e riadattarli a questa nuova applicazione e molto ardua da parte mia senza neppure conoscere la sua struttura.
    Ma da qualche parte dovrò pur cercare di partire No ?

    3) Come so da me che senza il vostro aiuto concreto non riuscirei a ricavare nulla

    In più ti posso assicurare ché tante cose che hai visto all'interno del mio progettino
    In questo contesto non servono a nulla
    Perché sono parte di un progetto diviso a metà di qui
    Una prima parte ho cercato di creare un form che si muovesse quando lo trascinavo con il mouse
    E questo fortunatamente sono riuscito a risolverlo
    E in questo form stavo cercando di ottenere una chiusura con l'uso di
    Me.Height e Me.Width par dare l'effetto di chiusura a scomparsa.
    Tutto qui.
    Ma ripeto essendo alle prime armi la vedo dura poter realizzare tutto ciò senza l'aiuto concreto di qualcuno di voi
    Ma non importa prima ho poi riuscirò a tirare fuori un qualcosa di valido .

    Tu mi hai detto giustamente che non c'é nessuna corrispondenza sul fattore (Timer)

    Ma ho voluto provare anche ad usare sia il timer come oggetto (Timer1) e sia questo formato :

    codice:
       Sub Chiudi_In_Modo_Vert()
            On Error Resume Next
            Me.Label2.Text = 35
    10:
            Dim PauseTime, Start
    
    
            PauseTime = 1
            Start = Timer
            Do While Timer < Start + PauseTime
                DoEvents()
            Loop
    
    
    
    
            Me.Label2.Text = Me.Label2.Text - 1
            If Me.Label2.Text = 0 Then
                ' Ferma Il Ciclo
                End
                Exit Sub
            End If
            GoTo 10
        End Sub
    
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Call Chiudi_In_Modo_Vert()
        End Sub
    Ma anche in questo caso non succede nulla!
    Ciao e Grazie per le tue delucidazioni in merito
    Saluti da Maurizio
    A.Maury1704

  4. #4
    non succede niente perché non tocchi in nessun modo l'altezza della form, mentre invece aggiorni una label (quella almeno cambia?)

    P.S. rivedere dopo quarant'anni una GOTO .... vabbe'

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    1) Quanto riportato da me Funziona benissimo se lo inserisco in un Userform di Excel e ancora meglio se lo adatto al VB6.0
    E' un po' come un veterinario che opera chirurgicamente un uomo o una donna giustificandosi che "con i babbuini funziona benissimo ciò che fa".

    Stai usando una piattaforma diversa, un linguaggio diverso, un framework diverso, aspettarsi che tutto funzioni regolarmente si potrebbe considerare un pochino pretenzioso, no?

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Il problema e che da quando ho dovuto cambiare pc
    Passando dai 32 bit hai 64 bit il vb6.0 non e più disponibile
    Pertanto a mio malgrado sono dovuto passare dal VB6.0 al VBA e poi successivamente al Visual Studio 2022
    Tutto ciò mi ha penalizzato molto , perché i programmi precedenti tolto via il vba mi davano soddisfazioni immense
    Ora con questo nuovo programma trovo tutto molto più difficile nel voler fare anche solo le cose più banali.
    Succede, quando si usa qualcosa senza conoscerlo.
    Ma c'è una soluzione molto semplice: studiare ciò che si usa.

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    2) capisco da me che riprendere i miei vecchi progetti e riadattarli a questa nuova applicazione e molto ardua da parte mia senza neppure conoscere la sua struttura. Ma da qualche parte dovrò pur cercare di partire No ?
    Sì, dallo studio, e non dallo scrivere codice senza avere chiaro quello che fa.

    3) Come so da me che senza il vostro aiuto concreto non riuscirei a ricavare nulla

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    In più ti posso assicurare ché tante cose che hai visto all'interno del mio progettino
    In questo contesto non servono a nulla
    Perché sono parte di un progetto diviso a metà di qui
    E' tuo compito togliere dal codice tutto ciò che non serve.
    Ad ogni modo, utile o meno, il codice ha mostrato qual è la reale problematica di fondo: stai migrando verso qualcosa di diverso dai linguaggi e dagli strumenti che usi abitualmente, pertanto sebbene siano simili, ti devi documentare a riguardo prima di scrivere codice.

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    E in questo form stavo cercando di ottenere una chiusura con l'uso di [/FONT][/COLOR]Me.Height e Me.Width par dare l'effetto di chiusura a scomparsa. Tutto qui.
    L'esigenza è chiara, ma come già ho avuto modo di illustrarti nella mia precedente risposta, gli errori sono tanti, il codice non ha senso, le istruzioni sono raffazzonate e non seguono una logica, i tipi di dato sono tutti miscelati, non si può andare a tentoni.

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Ma ripeto essendo alle prime armi la vedo dura poter realizzare tutto ciò senza l'aiuto concreto di qualcuno di voi
    Un conto è aiutare qualcuno che, dopo aver studiato, ha dei concetti non chiari su cui fare luce o ha un problema specifico con un effetto indesiderato o una riga di codice che non sortisce l'effetto sperato, un altro conto è quello di spiegare per filo e per segno tutti gli errori presenti in un listato di codice scritto per un altro framework e linguaggio perdendo una marea di tempo a fornire le nozioni che si possono apprendere da qualsiasi libro in circolazione, anche gratuito (se ne trovano parecchi cercando), o dalla documentazione.

    Formare non è un compito del forum, richiederebbe uno sforzo improbo e non è una richiesta lecita.

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Ma non importa prima ho poi riuscirò a tirare fuori un qualcosa di valido.
    Buon per te, ma non cambia la sostanza di quanto è stato detto.

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Tu mi hai detto giustamente che non c'é nessuna corrispondenza sul fattore (Timer)
    Ma ho voluto provare anche ad usare sia il timer come oggetto (Timer1) e sia questo formato [...]
    Nel codice che hai postato non stai in alcun modo cambiando l'altezza della finestra: non c'è alcun riferimento alla proprietà relativa (e questo non funzionerebbe nemmeno su VB6, VBA o GWBASIC).

    Inoltre, nel .NET Framework non si fa uso di On Error: esistono le Exception e devono essere gestite in modo strutturato, fermo restando che la clausola Resume Next è forse la più "pericolosa" della storia. Quanto al GoTo... meglio che non mi esprima.

    Infine, non si capisce come hai usato il Timer: si tratta di un componente che scatena periodicamente un evento, e qui non ce n'è traccia, se non in questo spezzone di codice che, così come scritto, non ha proprio alcun senso (non si capisce di che tipo è Timer, non ci sono tipi assegnati alle altre variabili, il ciclo non fa materialmente nulla):

    codice:
            Dim PauseTime, Start
    
    
            PauseTime = 1
            Start = Timer
            Do While Timer < Start + PauseTime
                DoEvents()
            Loop

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Ma anche in questo caso non succede nulla!
    Ripeto: non succede nulla perché il tuo codice è completamente sbagliato, non modifica alcuna proprietà rilevante, probabilmente è riportato anche parzialmente, e con la gestione degli errori così impostata "assorbe" anche qualsiasi possibile errore che potrebbe far emergere qualche indizio.

    Visual Basic .NET non si usa così: fine della storia.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Ovviamente concordo con Alka, specialmente quando ti dice che l'unica cosa da fare è studiare.

    Come ti ho detto in altri forum, dici di avere fatto la stessa cosa con vb6 o vba... mostra il codice!
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Ciao a tutti da Maurizio
    Avete ragione da vendere tutti quanti
    Ma a questo punto la mia domanda e questa : Dove posso trovare tutto il materiale per potermi documentare per potermi documetare; Studiare; per poi incominciare a programmare ; Visto che comunque sia sono pur sempre un Autodidatta !
    Grazie.

    E per rispondere alla Richiesta di Oregon
    Se non sbaglio qualche settimana fa
    Mi hai chiesto di inviarti il mio progetto creato con il VB6.0 sul mio Calendario Perpetuo
    Avrei potuto anche rifiutarmi ; Visto che " Cosi Fan Tutti"
    Ma come hai potuto vedere anche se io non voglio insegnare nulla a nessuno
    Te lo gentilmente Inviato
    Pertanto mi sarei aspettato almeno da parte tua un Semplice Grazie
    Mentre si continua solo a fare Demagogie su questa o quella cosa
    Ma di vero supporto tecnico ; Non si è mai visto neppure l'ombra.

    Anche a me sarebbe piaciuto andare a scuola da Programmazione
    Ma purtroppo la vita per me ha deciso di intraprendere altre strade
    Con questo non mi lamento affatto
    Però ora che vorrei studiare non saprei che pesci pigliare perché non nè capisco nulla di Visual Studio piuttosto che di Java; Azzurre ho Python ecc...!
    Sé però voleste darmi una mano almeno nel capire quali articoli ho libri cercare e dove trovare tutto il materiale
    Ve ne sarei grato
    Nuovamente Sinceri Saluti e Grazie ancora di tutto e della vostra comprensione da maurizio
    A.Maury1704

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Ma a questo punto la mia domanda e questa : Dove posso trovare tutto il materiale per potermi documentare per potermi documetare; Studiare; per poi incominciare a programmare ; Visto che comunque sia sono pur sempre un Autodidatta !
    Grazie.
    Direi ovunque: fai una ricerca sul Web per trovare guide, libri, articoli, tutorial, corsi, in inglese e in italiano, usando queste parole chiave.
    C'è qualcosa anche nel thread in rilievo in quest'area del forum con il Regolamento.
    Cerca anche sul forum perché a questa domanda, nell'arco di più di 20 anni di esistenza di .NET, sono state date numerose risposte nel tempo.

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Mentre si continua solo a fare Demagogie su questa o quella cosa
    Ma di vero supporto tecnico ; Non si è mai visto neppure l'ombra.
    E' doveroso precisare che questo è sempre un forum di programmazione e non un servizio di supporto tecnico: qui nessuno è pagato per dare una mano, nessuno è obbligato a farsi carico di determinati problemi, si partecipa in base al tempo libero a disposizione e/o in base alla propria libera volontà.

    Se si vuole ottenere aiuto professionale mirato alla risoluzione di un problema specifico, quella si chiama consulenza e nell'eventualità si paga (se non viene offerta dall'interessato con i criteri liberi indicati sopra).

    Per il resto le accuse di "demagogia", o di poco interesse, o eventuali polemiche affini non sono questioni tecniche e non sono interessanti.

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Anche a me sarebbe piaciuto andare a scuola da Programmazione
    Ma purtroppo la vita per me ha deciso di intraprendere altre strade
    Con questo non mi lamento affatto
    Di nuovo, le vicissitudini quotidiane della vita le abbiamo tutti, anche se non ne parliamo all'interno di un forum tecnico, quindi anche su questo aspetto esorto a sorvolare e a concentrarsi sulle questioni tecniche, altrimenti diventa un forum di psicologia.

    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Però ora che vorrei studiare non saprei che pesci pigliare perché non nè capisco nulla di Visual Studio piuttosto che di Java; Azzurre ho Python ecc...!
    Sé però voleste darmi una mano almeno nel capire quali articoli ho libri cercare e dove trovare tutto il materiale
    Ve ne sarei grato
    Tralasciando sul fatto che hai citato ventimila cose, tra Visual Studio, Java, Azure (non "Azzurre"!), Python... e che conoscerle tutte in modo approfondito non è questione di dieci minuti, non si capisce quale mano ti si debba dare se tutto quello che puoi trovare è a portata di qualsiasi motore di ricerca che, se usato come si deve, può dare migliaia anzi milioni di risultati e in tempo zero, senza dover aspettare che qualcuno posti un link basandosi sulle proprie opinioni ed esperienze personali che potrebbero non coincidere con i tuoi gusti, le tue attitudini e le tue aspettative.

    Dovresti mettere nella ricerca e nello studio lo stesso sforzo che impieghi nel lamentarti del tono delle risposte altrui, nel raccontare questioni che non hanno a che vedere con i problemi, nel divagare continuamente sia nei discorsi sia nel codice scritto senza focalizzare l'attenzione su quello che serve.

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

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

  9. #9
    vado un po' OT, abbiate pazienza

    @A.Maurizio, valuta attentamente se devi per forza passare a VB.NET; esistono ancora in circolazione milioni di applicativi in VB6/VBA che girano regolarmente.
    Se poi decidi che lo devi fare, valuta anche l'approccio: se lo devi fare professionalmente non hai altra strada che studiare (e su Internet trovi tantissimo materiale); se invece è un'attività sporadica/amatoriale (scenario nel quale comunque studiare non fa male ) vanno bene forum come questi o addirittura ChatGPT et similia: in entrambi i casi, devi saper porre la domanda giusta per ottenere la risposta più efficace (capacità non scontata )

    Buon proseguimento

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Quote Originariamente inviata da A.Maurizio Visualizza il messaggio
    Ciao a tutti da Maurizio
    per potermi documetare
    Dai libri. Da corsi appositi. E ci vuole tempo e dedizione, TANTO tempo e dedizione.

    Se non sbaglio qualche settimana fa
    Mi hai chiesto di inviarti il mio progetto creato con il VB6.0 sul mio Calendario Perpetuo
    Il calendario (che non funzionava comunque) non c'entra nulla con questa tua richiesta.

    Qui hai detto di avere scritto in VB6 questo codice, esattamente questo codice, non altro.

    Se lo sai fare o lo hai fatto in VB6, mostracelo.

    semplice Grazie
    Ma di cosa? Per un codice estremamente confuso con tanti errori e che non si sa cosa faccia?

    Mentre si continua solo a fare Demagogie su questa o quella cosa
    La demagogia non c'entra nulla.

    Ma di vero supporto tecnico ; Non si è mai visto neppure l'ombra.
    Tu spari sempre ad ogni thread codice senza senso chiedendo soluzioni COMPLETE.
    Ma chi frequenta i forum NON SCRIVE codice al posto tuo.

    La questione che tu non vuoi ancora ammettere che non hai bisogno di supporto ma, purtroppo, essendo a zero o quasi (anche con VB6/VBA hai dubbi di base te lo assicuro), la questione si riduce a scrivere TUTTO il codice per te e devi capire, una volta per tutte, che NON E' POSSIBILE.

    Anche a me sarebbe piaciuto andare a scuola da Programmazione
    Ma purtroppo la vita per me ha deciso di intraprendere altre strade
    Questo non può essere un nostro problema.

    Però ora che vorrei studiare non saprei che pesci pigliare perché non nè capisco nulla di Visual Studio piuttosto che di Java; Azzurre ho Python ecc...!
    Come per il VB6 e il VBA, per VB.NET (non insistere con Visual Studio, il linguaggio è VB.NET), devi studiare. E con VB.NET devi studiare 10 volte tanto. Devi frequentare corsi in presenza e studiare sui libri, mesi e mesi, anche anni. NON CI SONO SCORCIATOIE.

    Sé però voleste darmi una mano almeno nel capire quali articoli ho libri cercare e dove trovare tutto il materiale
    Non trovi TUTTO il materiale in un posto. In qualsiasi libreria (anche online) trovi libri di base sul VB.NET e sulle classi del Framework .NET. Devi studiarli e farti rivedere sui forum dopo un anno di studio.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.