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