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

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 1: Riga 1:
Il caso è quello in cui si intende far mostrare in 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.
 
<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.
  
Riga 7: Riga 7:
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
 
   With ScrollView1 = New ScrollView(Me)
 
   With ScrollView1 = New ScrollView(Me)
Riga 25: Riga 25:
 
   End With
 
   End With
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub PictureBox1_Drop()
+
  Public Sub PictureBox1_Drop()
 
   
 
   
 
   Dim percorso As String
 
   Dim percorso As String
 
    
 
    
   percorso = Drag.Paste("text/uri-list")
+
   percorso = Drag.Paste("text/uri-list")[0]
 
+
<FONT color=gray>' ''Poiché il metodo "Drag.Paste()" ritorna la rappresentazione URI del pecorso del file immagine trascinato nella "PictureBox",''
 
' ''qualora il nome del file immagine contenga uno o più spazi, essi sarebbero riportati con i caratteri %20 (da notare che 20 è il valore ASCII in esadecimale appunto dello spazio)''.
 
' ''Ciò determinerebbe un errore nel successivo metodo "File.Load()". Applichiamo, pertanto, alla stringa ritornata dal metodo "Drag.Paste()" la funzione "FromUrl()":''</font>
 
  percorso = FromUrl(percorso)
 
 
 
<FONT color=gray>' ''Raccogliamo la parte della stringa contenente il mero percorso del file immagine:''</font>
 
  percorso = Scan(percorso, "file://*")[0]
 
 
 
 
   With PictureBox1
 
   With PictureBox1
 
  <FONT color=gray>' ''Carica l'immagine nella "PictureBox":''</font>
 
  <FONT color=gray>' ''Carica l'immagine nella "PictureBox":''</font>
Riga 49: Riga 41:
 
   End With
 
   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