Utilizzando FileChooser,
Con
FileChooser1.Filter = ["*.png", "Seleziona una immagine nel formato: "]
imposto la visualizzazione dei file nel solo formato .png
Con
If FileChooser1.SelectedPath = "" Then
Message.Info("Non hai selezionato una immagine")
End If
segnalo che la scelta non è stata fatta
Nonostante il filtro impostato, in FileChooser rimane comunque la possibilità di visualizzare "Tutti i file", quindi, per evitare scelte diverse da una immagine .png ho inserito
If FileChooser1.SelectedPath <> "*.png" Then
Message.Info("Non hai selezionato una immagine nel formato .png ")
End If
ma, quest'ultima parte non funziona, perchè? :nono:
Grazie ;)
Va ulteriormente aggiunto che - ad ogni modo - l'asterisco come filtro vale solo con le risorse Gambas che lo ammettono e lo usano dunque come tale.
Infatti qui il risultato è "False", e non "True" come invece ci si aspetterebbe, se si credesse che l'asterisco vale sempre e comunque come filtro:
Public Sub Main()
Dim s As String
s = "aloa"
Print s = "*oa"
End
Qui la stringa "*oa" è interpretata esattamente come 2A 6C 61 e non come "qualsiasi stringa che termina con i caratteri oa " !
...l'asterisco come filtro vale solo con le risorse Gambas che lo ammettono e lo usano dunque come tale.
Devi utilizzare l'operatore Like unitamente all'asterisco.
If FileChooser1.SelectedPath Not Like "*.png" Then
Print "Non hai selezionato una immagine nel formato .png "
Endif
Oppure anche l'operatore Ends, ma eliminando l'asterisco prima dell'estensione del file immagine:
If FileChooser1.SelectedPath Not Ends ".png" Then
Print "Non hai selezionato una immagine nel formato .png "
Endif
Potresti utilizzare anche la funzione Comp( ):
If Comp(FileChooser1.SelectedPath, "*.png", gb.Like) Then
Print "Non hai selezionato una immagine nel formato .png "
Endif