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

Da Gambas-it.org - Wikipedia.
(Creata pagina con '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 ...')
 
 
(13 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>
 
    PictureBox1.Drop = True
 
 
'''End'''
 
 
 
'''Public''' Sub PictureBox1_Drop()
 
 
  Dim percorso, percorso_controllato As String
 
  Dim bb As Byte[]
 
  Dim fl As File
 
  Dim sh As Short
 
 
 
  File.Save("/tmp/imm", Drag.Data)
 
  fl = Open "/tmp/imm" For Read
 
 
  sh = Stat("/tmp/d").Size - 16
 
 
  bb = New Byte[sh]
 
  bb.Read(fl, 0, sh)
 
  fl.Close
 
 
   
 
   
  percorso = bb.ToString(7, sh)
 
  percorso_controllato = controllo(percorso)
 
 
   
 
   
  PictureBox1.Picture = Picture.Load(percorso_controllato)
+
Public Sub Form_Open()
 
   
 
   
'''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
 
   
 
   
  <FONT color=gray>' ''I percorsi dei file contnenti uno o più spazi, oppure caratteri particolari, possono generare errore.''
+
  End
' ''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
 
 
   
 
   
 +
Public Sub PictureBox1_Drop()
 
   
 
   
   While b < Len(percorsoFile) + 1
+
  Dim percorso As String
    s1 = String.Mid(percorsoFile, b, 1)
+
    
    If s1 = "%" Then
+
  percorso = Drag.Paste("text/uri-list")[0]
      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