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

    [VB6] Aiuto notepad

    Da poco ho iniziato a studiare il visual basic, e una delle prime applicazioni che mi è venuto in mente di creare è stato il classico netepad.
    Quello che volevo ottenere lo ho ottenuto, ma una cosa la volevo migliorare.
    Praticamente, io posso aprire i file di testo solo se il blocco note è già aperto, e quindi selezionando il menù "file/apri".
    Quello che voglio aggiungere alla mia applicazzione è la possibilità di aprire i file di testo, semplicemente con un doppio click da esplora risorse.
    Chi me la dà una mano please??

    Se avete bisogno del codice per aiutarmi, chiedete pure

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Si deve usare l'istruzione Command() che contiene gli eventuali argomenti passati all'EXE.

    Ma devi aviare il tuo programma da un modulo BAS, esempio modMain.bas
    in cui devi creare una Sub di nome Main() :

    codice:
    Public Sub Main()
        Dim sFile As String 
        sFile = Command()
    
        If sFile = "" then
            Rem Non c'è alcun un argomento, apro il form normalmente
            frmMain.Show
        Else
            Rem Carico il file
            Load frmMain
            frmMain.TuaRoutineCheCaricaIlFile sCommand
            frmMain.Show
        End If
    End Sub
    Ricordati di andare sulle proprietà del progetto ed impostare come Oggetto d'avvio: Sub Main!!!

    Poi devi registrare la tua applicazione affinchè da Esplora Risorse tu possa caricarla con il doppio clic.
    Da Esplora Risorse :
    1 - seleziona il tipo di file, tra i files elencati, con clic-destro.
    2 - dal menu di contesto scegli 'Apri con...'
    3 - N.B. Se non vedi il comando 'Apri con...' ripeti il punto 1 tenedo premuto MAIUSC (o SHIFT se hai la tastiera americana)
    4 - dalla finestra che si apre seleziona la tua applicazione compilata (EXE)
    5 - spunta la casella 'Usa sempre questa applicazione.........'
    6 - OK per confermare

    Ora aprirai quel tipo di file sempre con il tuo programma.

    Ciao

  3. #3
    grazie mille!
    però ho una domanda...
    qui,

    frmMain.TuaRoutineCheCaricaIlFile sCommand

    al posto di TuaRoutineCheCaricaIlFile, cosa devo mettere??
    scusa la mia ignoranza, ma del campo sono ancora nuovo!

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Innanzitutto mi sono accorto di un errore, la riga:

    frmMain.TuaRoutineCheCaricaIlFile sCommand

    è sbagliata, deve essere:

    frmMain.TuaRoutineCheCaricaIlFile sFile

    Per rispondere alla tua domanda, la TuaRoutineCheCaricaIlFile deve essere la tua funzione che carica il file, quella che usi dal tuo menu: File -> Apri.
    Quella dovresti già averla, giusto?

    Ciao

  5. #5
    scusa, ma io nel menù apri ho questo codice:

    • Private Sub mnuApri_Click()
      Dim intFileNumIn As Integer
      cd.FileName = ""
      cd.Filter = "File di testo|*.txt"
      cd.ShowOpen
      intFileNumIn = FreeFile
      If cd.FileName <> "" Then
      Open cd.FileName For Input As intFileNumIn
      While Not EOF(1)
      Line Input #intFileNumIn, linea
      txtTesto.Text = txtTesto.Text & linea & vbCrLf
      stringa1 = txtTesto.Text
      flag = True
      Wend
      Close #intFileNumIn
      End If
      End Sub

    dove "cd" è un common dialog, "stringa1" è una string e "linea" un altra string

    come lo unisco a frmMain.TuaRoutineCheCaricaIlFile sFile??

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Per TuaRoutineCheCaricaIlFile intendevo che tu avessi già una routine separata che si incarica di caricare solo il file, vedo che non ce l'hai, allora fai così:

    sposta tutto il codice che hai in mnuApri_Click() in una nuova routine che puoi chiamare ad esempio CaricaFile , e che richiede un parametro opzionale.
    Poi dovrai aggiustare un po' il tuo codice in modo che il common dialog per la selezione deve aprirsi solo quando non viene passato il parametro sFileName.
    Mentre quando la routine viene chiamata da mnuApri il il common dialog dovrà aprirsi per selezionare il file da aprire.

    codice:
    Public Function CaricaFile(Optional ByVal sFileName as String = "") As Boolean
    
        If sFileName = "" Then
            '/ 
            '/ Qui metti solo il codice che chiede il file all'utente, usando la common dialog
            '/ 
            sFileName = cd.FileName 
        End If
    
        '/ solo codice che apre il file
        If sFileName <> "" Then
            Open sFileName For Input As intFileNumIn
            ' ecc. ecc. ecc.
        End If
    
    End Function
    La tua vecchia routine diventerà semplicemente:
    codice:
    Private Sub mnuApri_Click()
        CaricaFile
    End Sub


    Ciao

  7. #7

    Cavoli, ho provato di tutto, ho modificato il codice in tutti i modi possibili, ma mi dà sempre lo stesso errore:

    Run-time error '52':
    Bad file name or number


  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Non è una buona strategia quella di... "modificare il codice in tutti i modi possibili".
    Il messaggio di errore è abbastanza chiaro. In quale riga si verifica? Io me lo immagino, ma tu dovresti dare questa informazione fondamentale.

  9. #9
    il messaggio di errore è abbastanza chiaro, è vero, il problema è appunto che non sò in che riga si verifica l'errore.
    ho provato a rileggermi tutto per vedere se c'era qualcosa di illogico, e a modificare ciò che non tornava, ma il risultato è sempre quello...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Originariamente inviato da Il Cecchino
    il problema è appunto che non sò in che riga si verifica l'errore.
    Ma come no? Certamente non potrai scoprire la riga dell'errore se lanci il programma compilato. Ma se lo esegui nell'ambiente di sviluppo, quando ti compare la finestra con il messaggio di errore c'è un pulsante con scritto DEBUG .
    Se poi lo esegui passo-passo scoprirai anche un sacco di altre cose.

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.