Differenze tra le versioni di "Mostrare un'immagine con il Drop del suo file in una PictureBox"

Da Gambas-it.org - Wikipedia.
 
(12 versioni intermedie di uno stesso utente non sono mostrate)
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 in una ''PictureBox'' un'immagine, semplicemente trascinando il suo file desktop, preso anche da una finestra esterna all'applicativo Gambas, e rilasciandolo all'interno della predetta ''PictureBox''.
 +
<BR>Per consentire di mostrare un'immagine di qualsiasi dimensione, la ''PictureBox'' sarà posta all'interno di una ''ScrollView'' e ridimensionata alle dimensioni dell'immagine caricata.
  
 
+
Mostriamo un semplice esempio:
===Usando il componente ''gb.qt4''===
+
Private ScrollView1 As ScrollView
Se è stato impostato il componente ''gb.qt4'', allora potrà essere utilizzato il seguente codice:
+
Private PictureBox1 As PictureBox
  '''Public''' Sub Form_Open()
+
   
 
   
 
   
  <FONT color=gray>' ''Impostiamo la proprietà "''.Drop''" a "Vero" per consentire l'attivazione dell'evento del "Drop":''</font>
+
  Public Sub Form_Open()
    PictureBox1.Drop = True
 
 
   
 
   
'''End'''
+
  With ScrollView1 = New ScrollView(Me)
 +
    .X = 0
 +
    .Y = 0
 +
    .W = Me.W
 +
    .H = Me.H
 +
  End With
 
   
 
   
 +
  With PictureBox1 = New PictureBox(ScrollView1) As "PictureBox1"
 +
    .X = 0
 +
    .Y = 0
 +
    .W = ScrollView1.W
 +
    .H = ScrollView1.H
 +
<FONT color=gray>' ''Impostiamo la proprietà "''.Drop''" a "Vero" per consentire l'attivazione dell'Evento "_Drop":''</font>
 +
    .Drop = True
 +
  End With
 
   
 
   
  '''Public''' Sub PictureBox1_Drop()
+
  End
 
   
 
   
  Dim percorso, percorso_controllato As String
 
  Dim bb As Byte[]
 
  Dim sh As Short
 
 
   
 
   
 +
Public Sub PictureBox1_Drop()
 
   
 
   
  With bb = Byte[].FromString(s) 
+
  Dim percorso As String
    .Remove(sh, 16) 
 
    percorso = .ToString(7, sh) 
 
  End With 
 
 
    
 
    
  percorso_controllato = controllo(percorso)
+
  percorso = Drag.Paste("text/uri-list")[0]
 
  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
+
  With PictureBox1
 +
<FONT color=gray>' ''Carica l'immagine nella "PictureBox":''</font>
 +
    .Picture = Picture.Load(Trim(percorso))
 +
<FONT color=gray>' ''Ridimensiona la "PictureBox" adattandola alle dimensioni dell'immagine caricata:''</font>
 +
    .Resize(.Picture.W, .Picture.H)
 +
  End With
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 09:41, 4 ago 2023

Il caso è quello in cui si intende far mostrare in una PictureBox un'immagine, semplicemente trascinando il suo file desktop, preso anche da una finestra esterna all'applicativo Gambas, e rilasciandolo all'interno della predetta PictureBox.
Per consentire di mostrare un'immagine di qualsiasi dimensione, la PictureBox sarà posta all'interno di una ScrollView e ridimensionata alle dimensioni dell'immagine caricata.

Mostriamo un semplice esempio:

Private ScrollView1 As ScrollView
Private PictureBox1 As PictureBox


Public Sub Form_Open()

 With ScrollView1 = New ScrollView(Me)
   .X = 0
   .Y = 0
   .W = Me.W
   .H = Me.H
 End With

 With PictureBox1 = New PictureBox(ScrollView1) As "PictureBox1"
   .X = 0
   .Y = 0
   .W = ScrollView1.W
   .H = ScrollView1.H
' Impostiamo la proprietà ".Drop" a "Vero" per consentire l'attivazione dell'Evento "_Drop":
   .Drop = True
 End With

End


Public Sub PictureBox1_Drop()

 Dim percorso As String
  
 percorso = Drag.Paste("text/uri-list")[0]

 With PictureBox1
' Carica l'immagine nella "PictureBox":
   .Picture = Picture.Load(Trim(percorso))
' Ridimensiona la "PictureBox" adattandola alle dimensioni dell'immagine caricata:
   .Resize(.Picture.W, .Picture.H)
 End With

End