Differenze tra le versioni di "Mostrare un'immagine con il Drop del suo file in una PictureBox"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
Il caso è quello in cui si intende far mostrare da una ''PictureBox'' un'immagine, semplicemente trascinando il suo file, preso anche da una finestra esterna all'applicativo Gambas, e rilasciandolo all'interno della predetta ''PictureBox''. | Il caso è quello in cui si intende far mostrare da una ''PictureBox'' un'immagine, semplicemente trascinando il suo file, preso anche da una finestra esterna all'applicativo Gambas, e rilasciandolo all'interno della predetta ''PictureBox''. | ||
+ | |||
+ | |||
+ | |||
+ | ===Usando i componenti ''gb.gtk'', ''gb.gtk3'' o ''gb.gui''=== | ||
+ | Se è stato impostato uno di questi componenti: ''gb.gtk'', ''gb.gtk3'' o ''gb.gui'', allora potrà essere utilizzato il seguente codice: | ||
+ | '''Public''' Sub Form_Open() | ||
+ | |||
+ | <FONT color=gray>' ''Impostiamo la proprietà "''.Drop''" a "Vero" per consentire l'attivazione dell'evento del "Drop":''</font> | ||
+ | PictureBox1.Drop = True | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub PictureBox1_Drop() | ||
+ | |||
+ | Dim dati, percorso, percorso_controllato As String | ||
+ | |||
+ | |||
+ | dati = Drag.Data | ||
+ | |||
+ | percorso = String.Mid(dati, 8, String.Len(dati)) | ||
+ | |||
+ | percorso_controllato = controllo(Trim(percorso)) | ||
+ | |||
+ | PictureBox1.Picture = Picture.Load(percorso_controllato) | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | <FONT color=gray>' ''I percorsi dei file contnenti uno o più spazi, oppure caratteri particolari, possono generare errore.'' | ||
+ | ' ''Questa funzione intende risolvere quel problema.''</font> | ||
+ | '''Private''' Function controllo(percorsoFile As String) As String | ||
+ | |||
+ | Dim b As Byte = 1 | ||
+ | Dim s1, s2 As String | ||
+ | Dim n As Byte | ||
+ | |||
+ | |||
+ | While b < Len(percorsoFile) + 1 | ||
+ | s1 = String.Mid(percorsoFile, b, 1) | ||
+ | If s1 = "%" Then | ||
+ | n = Val("&" & Mid(percorsoFile, b + 1, 2)) | ||
+ | s1 = Chr(n) | ||
+ | b += 2 | ||
+ | Endif | ||
+ | s2 &= s1 | ||
+ | Inc b | ||
+ | Wend | ||
+ | |||
+ | Return s2 | ||
+ | |||
+ | '''End''' | ||
+ | |||
Versione delle 16:55, 15 mar 2014
Il caso è quello in cui si intende far mostrare da una PictureBox un'immagine, semplicemente trascinando il suo file, preso anche da una finestra esterna all'applicativo Gambas, e rilasciandolo all'interno della predetta PictureBox.
Usando i componenti gb.gtk, gb.gtk3 o gb.gui
Se è stato impostato uno di questi componenti: gb.gtk, gb.gtk3 o gb.gui, allora potrà essere utilizzato il seguente codice:
Public Sub Form_Open() ' Impostiamo la proprietà ".Drop" a "Vero" per consentire l'attivazione dell'evento del "Drop": PictureBox1.Drop = True End Public Sub PictureBox1_Drop() Dim dati, percorso, percorso_controllato As String dati = Drag.Data percorso = String.Mid(dati, 8, String.Len(dati)) percorso_controllato = controllo(Trim(percorso)) PictureBox1.Picture = Picture.Load(percorso_controllato) End ' I percorsi dei file contnenti uno o più spazi, oppure caratteri particolari, possono generare errore. ' Questa funzione intende risolvere quel problema. Private Function controllo(percorsoFile As String) As String Dim b As Byte = 1 Dim s1, s2 As String Dim n As Byte While b < Len(percorsoFile) + 1 s1 = String.Mid(percorsoFile, b, 1) If s1 = "%" Then n = Val("&" & Mid(percorsoFile, b + 1, 2)) s1 = Chr(n) b += 2 Endif s2 &= s1 Inc b Wend Return s2 End
Usando il componente gb.qt4
Se è stato impostato il componente gb.qt4, allora potrà essere utilizzato il seguente codice:
Public Sub Form_Open() ' Impostiamo la proprietà ".Drop" a "Vero" per consentire l'attivazione dell'evento del "Drop": PictureBox1.Drop = True End Public Sub PictureBox1_Drop() Dim dati, percorso, percorso_controllato As String dati = Drag.Data percorso = String.Mid(dati, 8, String.Len(dati) - 16 - 7) percorso_controllato = controllo(percorso) PictureBox1.Picture = Picture.Load(percorso_controllato) End ' I percorsi dei file contnenti uno o più spazi, oppure caratteri particolari, possono generare errore. ' Questa funzione intende risolvere quel problema. Private Function controllo(percorsoFile As String) As String Dim b As Byte = 1 Dim s1, s2 As String Dim n As Byte While b < Len(percorsoFile) + 1 s1 = String.Mid(percorsoFile, b, 1) If s1 = "%" Then n = Val("&" & Mid(percorsoFile, b + 1, 2)) s1 = Chr(n) b += 2 Endif s2 &= s1 Inc b Wend Return s2 End