e continua:
[supersaibal]
Inserimento di grafica in posizioni arbitrarie
È possibile inserire elementi grafici in posizioni arbitrarie su un form, una casella immagine o un oggetto Printer utilizzando il metodo PaintPicture. Di seguito è riportata la sintassi del metodo PaintPicture:
[oggetto.]PaintPicture immagine, destX, destY[, larghdest[, altdest _
[, origineX[, origineY[, originelargh[, originealt[, Op]]]]]]]
L'argomento oggetto rappresenta il form, la casella immagine o l'oggetto Printer di destinazione in cui l'argomento immagine viene inserito. Se l'argomento oggetto viene omesso, l'immagine viene inserita nel form corrente. L'argomento immagine deve essere un oggetto Picture, specificato dalla proprietà Picture di un form o un controllo.
Gli argomenti destX e destY rappresentano le posizioni orizzontale e verticale in cui l'immagine verrà rappresentata utilizzando la proprietà ScaleMode di oggetto. Gli argomenti larghdest e altdest sono facoltativi e consentono di impostare la larghezza e l'altezza dell'immagine nell'oggetto di destinazione specificato con l'argomento oggetto.
Gli argomenti origineX e origineY sono facoltativi e definiscono le coordinate x e y dell'angolo superiore sinistro dell'area di ritaglio all'interno dell'immagine specificata con l'argomento immagine.
L'argomento facoltativo Op, quale AND o XOR, definisce un'operazione eseguita sull'immagine in fase di disegno all'interno dell'oggetto di destinazione specificato con l'argomento oggetto.
È possibile utilizzare il metodo PaintPicture anziché la funzione BitBlt dell'API di Windows per eseguire operazioni dettagliate durante lo spostamento di un'area rettangolare di un elemento grafico da una posizione all'altra.
È possibile, ad esempio, utilizzare il metodo PaintPicture per creare più copie della stessa bitmap e quindi sovrapporle in un form. L'utilizzo di questo metodo risulta più veloce rispetto allo spostamento dei controlli immagine all'interno di un form. Il seguente codice sovrappone 100 copie di un controllo immagine e capovolge le singole immagini in senso orizzontale in base al valore negativo specificato con l'argomento larghdest.
For i = 0 To 10
For j = 0 To 10
Form1.PaintPicture picF.Picture, j * _
picF.Width, i * picF.Height, _
picF.Width, -picF.Height
Next j, i
[/supersaibal]