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

    Delucidazioni per principiante VB.net

    Ciao a tutti;

    Da poco sto iniziando a informarmi sul VB.net... ho letto la guida creata da Piero Foly e piano piano sto cercando di mettere un pò di ordine in testa tra classi / sottoclassi ecc...

    La mia intenzione è di creare una piccola applicazione per gestire le password usate in famiglia in quanto iniziano ad essere tante e complicate ... ma vi chiedo di non soffermarvi troppo sul mio scopo ma un aiuto sul mettere in ordine la gran confusione che ho in testa .

    La guida che ho letto ha sempre fatto riferimento a codice scritto per una "application console" dove la struttura del main ed il suo "richiamo" lo scrivi a livello di codice...

    Premesso che uso Visual Studio 2015: quella che ho iniziato a creare è una "windows forma aplication" non sono riuscito a capire da dove venga chiamata la Form1 (messa di default) .....

    Personalmente sono abituato a programmare con PLC dove il MAIN è il blocco principale dal quale richiamo altri blocchi ecc... qui invece si parla di un MAIN che è richiamato da "qualcos'altro" che non ho capito ...la form1 sarebbe il mio MAIN? ...

    scusate la confusione ... non vi chiedo per forza di scrivermi l'esatto albero genialogico della struttura (anche se sarebbe bello ) ma mi basterebbe una guida dove spieghi più nel dettaglio questa cosa ...

    Grazie
    <<<<<La pazienza è la virtù dei forti>>>>>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    87
    Quando crei una nuova Applicazione Windows Form, per default viene generata la form1 che tanto meno viene impostata come form di avvio.

    Per cambiare la form di avvio e altro devi andare su:

    Progetto --> Proprietà di....................

    e ti viene visualizzato il tutto.

  3. #3
    Grazie della risposta Jekisi!

    Se devo essere sincero la avevo già vista questa pagina di impostazioni; però non vedo il codice di richiamo della form1!...
    Qua ...ok riesco a selezionare la form di avvio ecc... ma resta pur sempre un menù di impostazione ... non è codice....

    Voglio arrivare al codice per questo motivo: sicuramente dirò una boiata: la form1 mi sembra una sorta di MAIN ... ecco....io per poter creare un "metodo" esempio:

    Sub [nome] ()
    'istruzioni
    End Sub

    voglio crearlo al di fuori "dell'istanza" ""MAIN"" ovvero ... form1.....

    ma questa non la vedo richiamata da alcun codice ....

    Ho provato ad andare su: "mostra in mappa codice" ....scompattando l'albero che viene creato riesco a capire questa sequenza (dove il n° 1 è l'insieme più grosso (la scatola + grossa che contiene le altre scatole all'interno)

    1 : nome del progetto .exe
    2 : { nome del progetto }
    3 : Form1

    Ma non vedo del codice che richiama la form1...
    <<<<<La pazienza è la virtù dei forti>>>>>

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    La creazione dell'istanza del form di avvio è gestita da codice che sta all'interno di un file che si chiama Application.Designer.vb autogenerato dal tool di gestione delle proprietà visuale con cui imposti il "Forma di avvio". Si tratta di un codice che "non" deve essere modificato e che non ha senso modificare.

    Se spieghi meglio quello che intendi fare, fermo restando che stai operando in un "ambiente OOP" e non con un PLC, si può capire cosa meglio fare.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Grazie oregon ora ho già un po più chiara la "gerarchia" .... parliamo di ambiente OOP il riferimento al PLC era puramente d'esempio!

    Il mio thread ha un titolo un po vago quindi quando mi chiedi di spiegare meglio ciò che intendo fare mi vengono in mente tante domande ... le quali risposte per lo più le trovo sui manuali ma alcune cose anche con i manuali non son riuscito ad afferrarle, faccio un piccolo esempio sperando di essere più preciso possibile, mi scuso già per il linguaggio poco tecnico che non ho ancora avuto modo di affinare:

    Parliamo di compilatore visual studio 2015:

    Supponiamo di voler creare come detto nel 1° post una piccola applicazione per la gestione di password che attualmente sono su dei file di testo... il programma deve permettere di cercare / aggiungere / eliminare sia il "campo" nome che la relativa password associata a quel campo.
    Al di là delle funzioni interne che permetteranno una ricerca , l'edit ecc.. vorrei capire meglio la struttura da creare per un programma simile, o meglio:

    Ok la Form1 è generata e richiamata dall'Application.Designer.vb fin qui grazie al tuo post ho appreso.

    ora: per scrivere un programma ordinato e funzionale come dovrei procedere?

    spiego meglio:
    I nomi con relative password che io chiamerei "dati" dove li dovrei scrivere tenendo conto di non voler più utilizzare i files di testo ? basta creare un array ? questo array dove lo creo?... all'interno della form1? credo che se creassi un array all'interno di una qualsiasi form non potrò mai editare l'array tramite il programma stesso.... immagino che questo array debba essere scritto ad esempio su una dll esterna all'eseguibile?

    Come vedete ho molta confusione in testa ... e sicuramente per voi spiegare non deve essere facile

    Grazie comunque
    <<<<<La pazienza è la virtù dei forti>>>>>

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    In effetti hai tanta confusione. Praticamente non hai idea di come si programma con VB.NET e tutto il discorso appena fatto non c'entra quasi nulla.

    E questo non è un problema ma un forum non ti può aiutare.

    Devi avere pazienza, prendere dei libri, anche molto "di base" e iniziare a studiarli.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Ho già cercato delle guide ma non ho trovato quella che mi spiega bene la struttura!...

    Le funzioni e le logiche che si possono fare all'interno di una struttura le conosco nel campo PLC (il mio alvoro) le uso quotidianamente... so bene cosa siano array pointer ecc... ma non ho ben afferrato la struttura del VB net!...

    Io l'applicazione che di cui parlo lo già creata ma ho paura che non sia fatta con una struttura decente!... è funzionante niente da dire ... e non da errori ma non sono sicuro sia corretta!... faccio un esempio:

    Questa è la form1:

    composta da:
    • 1 pulsante di uscita
    • 1 pulsante accedi
    • 2 campi text label per l'immissione di user ID e psw
    • 1 progres bar per indicare il tempo rimanente prima della chiusura del programma se non vengono inserite le credenziali
    • 1 label di avviso utente non autorizzato


    codice:
    Public Class Form1
        Public conteggio As Integer
        Public Const incremento As Integer = +1
        Public login_utente As String
    
    
        '______Caricamento form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
            Const cripta_testo As Char = "*"
            TextBox1.PasswordChar = cripta_testo
            TextBox2.PasswordChar = cripta_testo
    
        End Sub
    
        '_______form1______Pulsante chiudi
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            End
        End Sub
    
        '_______form1______Pulsante accedi
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    
            Dim utente() As String = {"paperina", "pluto", "paperino"}
            Dim password() As String = {"123456", "1234567", "12345678"}
    
            Dim testo_utente As String = TextBox1.Text
            Dim testo_password As String = TextBox2.Text
            Dim autorizzato As Single = False
    
            Select Case testo_utente + testo_password
                Case = utente(0) + password(0)
                    autorizzato = True
                    login_utente = utente(0)
                Case = utente(1) + password(1)
                    autorizzato = True
                    login_utente = utente(1)
                Case = utente(2) + password(2)
                    autorizzato = True
                    login_utente = utente(2)
                Case Else
                    Label6.Visible = True
                    Timer2.Start()
            End Select
    
            '______Accesso autorizzato______
            If autorizzato = True Then
                Timer1.Stop()
                Me.Hide()
                Dim ricerca_password As New Ricerca_Password
                ricerca_password.Show()
            End If
    
        End Sub
        '_____Timer_inserzione credenziali______
        Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            ProgressBar1.Increment(-1)
    
            If ProgressBar1.Value = 0 Then
                End
            End If
    
        End Sub
    
        '_____Timer_scomparsa_label_"non autorizzato"_____
        Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
    
            conteggio = 0 + conteggio + incremento
    
            If conteggio = 50 Then
                Label6.Hide()
                Timer2.Stop()
                conteggio = 0
            End If
    
        End Sub
    
    End Class
    Questa è la form 2:

    composta da:
    • 1 pulsante di uscita
    • 1 pulsante per copiare la psw selezionata
    • 1 list box che al caricamento della form preleva i dati da un array
    • 1 label di benvenuto
    • 1 list box dove "dovrebbe filtrarmi i nomi con "per ora" la lettera ""f"" in maniera da poi suddividere in pagine separate i nomi secondo la prima lettera (ordine alfabetico) ma la funzione che ho provato per ora mi filtra tutte le stringhe che contengono all'interno la lettera..


    codice:
    Public Class form2
    
    
        Public nome(10) As String
        Public psw(10) As String
    
    
           '______form2 pulsante chiudi_____
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            End
        End Sub
        '______Caricamento ricerca password_____
        Private Sub form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
    
            Dim maschio_femmina As String
    
    
            Timer1.Start()
    
    
            Select Case Form1.login_utente
                Case "paperina (femmina)"
                    maschio_femmina = "a "
                Case "pluto", "paperino"
                    maschio_femmina = "o "
            End Select
    
    
            Label3.Text = "Benvenut" & maschio_femmina & Form1.login_utente & " !!!!"
    
    
            Label6.Text = Form1.login_utente
    
    
            '______archivio_______
            nome(0) = "google"
            nome(1) = "facebook"
            nome(2) = "wifi ufficio"
            nome(3) = "wifi casa"
            nome(4) = "antifurto"
            nome(5) = "knx"
            nome(6) = "forum a"
            nome(7) = "forum b"
            nome(8) = "forum c"
            nome(9) = "forum d"
    
    
            psw(0) = "password google"
            psw(1) = "password facebook"
            psw(2) = "password wifi ufficio"
            psw(3) = "password wifi casa"
            psw(4) = "password antifurto"
            psw(5) = "password knx"
            psw(6) = "password forum a"
            psw(7) = "password forum b"
            psw(8) = "password forum c"
            psw(9) = "password forum d"
            '_____________________________
    
    
            '_____importo gli elementi dell'array nella list box 1_____
            Dim i As Integer
    
    
            For i = 0 To 9
                ListBox1.Items.Add(nome(i))
            Next
    
    
    
    
            '______filtraggio elementi array______
            Dim testo As String
            Dim k As Integer
            Dim strSearch As String = "f"
            Dim pointer As Integer
    
    
    
    
            For k = 0 To 9
                testo = (nome(k))
                Dim indicePrimaOccorrenza As Integer = testo.IndexOf(strSearch)
                If indicePrimaOccorrenza = -1 Then
                    pointer += 1
                Else
                    ListBox2.Items.Add(nome(k))
                End If
            Next
            '_____________________________________
    
    
    
    
        End Sub
        '_____Timer scomparsa benvenuto______
        Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            Form1.conteggio = 0 + Form1.conteggio + Form1.incremento
    
    
            If Form1.conteggio = 70 Then
                Label3.Hide()
                Timer1.Stop()
                Form1.conteggio = 0
            End If
    
    
        End Sub
    
    
        '______pulsante di copia password_____
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            My.Computer.Clipboard.SetText(TextBox2.Text)
    
    
        End Sub
    
    
        '_____selezione nome archivio da listbox 1_____
        Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
            Dim n_selezione As Int32
    
    
            n_selezione = ListBox1.SelectedIndex
            TextBox2.Text = psw(n_selezione)
        End Sub
    
    
    End Class
    è ancora da completare ... è appena all'inizio ... per quel poco che fa riesco a farla funzionare ... però non son sicuro di aver fatto la cosa giusta .... tipo:

    l'array creato in form2 è giusto crearlo li? ... diciamo che funziona ... ma una volta compilato l'eseguibile io questo programma non potrò fare altro che avviarlo e copiare le psw che mi visualizzerà ... ma non potrò mai aggiungerne.... per aggiungerne immagino che questo array debba stare da qualche altra parte...?
    Ultima modifica di MD_CORPORATION; 20-01-2016 a 09:31
    <<<<<La pazienza è la virtù dei forti>>>>>

  8. #8
    PS: son riuscito a riordinare l'array in elenco alfabetico in questa maniera:

    codice:
    Dim lettera As String
            Dim z As Integer
            Dim iniziale As String
    
    
            For z = 0 To 9
                lettera = nome(z)
                iniziale = lettera.Remove(1)
                Select Case iniziale
                    Case "f"
                        ListBox1.Items.Add(nome(z))
                    Case "w"
                        ListBox2.Items.Add(nome(z))
                    Case "g"
                        ListBox3.Items.Add(nome(z))
                    Case "a"
                        ListBox4.Items.Add(nome(z))
                    Case "k"
                        ListBox5.Items.Add(nome(z))
                End Select
            Next
    <<<<<La pazienza è la virtù dei forti>>>>>

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Lascia stare le guide online e utilizza dei libri. Prenditi tutto il tempo, segui gli esempi e gli esercizi e studia dai libri.

    Non entro nel merito del codice (ad esempio, esistono metodi come Sort che ordinano in un sol colpo i dati in memoria, ma se non li studi ...). Solamente, se devi trattare dei dati, non puoi lasciarli nel programma (gli array servono a trattare temporaneamente i dati), devi poter gestire un database (al limite, per iniziare, un semplice file di testo). Ovviamente, trattandosi di password queste andranno criptate prima di salvarle. Ovviamente è troppo per iniziare ma non puoi andare avanti così ...

    Anche il thread mi sa che non può andare avanti più di tanto in maniera confusa ...
    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.