Mostrare un'immagine con il Drop del suo file in una PictureBox
Da Gambas-it.org - Wikipedia.
Versione del 2 set 2022 alle 01:28 di Vuott (Discussione | contributi)
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") ' 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()": percorso = FromUrl(percorso) ' Raccogliamo la parte della stringa contenente il mero percorso del file immagine: percorso = Scan(percorso, "file://*")[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